@charset "UTF-8";@font-face{font-family:Onest;src:url(/assets/Onest-VariableFont_wght-DHzYkti7.woff2) format("woff2");font-style:normal;font-weight:100 900;font-display:swap}:root{--color-bg: #f8f7f3;--color-surface: #ffffff;--color-surface-muted: #eeeae5;--color-text: #252520;--color-text-secondary: #5f5f56;--color-border: #e0ddd6;--color-border-strong: #8f8b83;--color-empty: #f4f3f0;--color-mint: #8a63b5;--color-mint-hover: #7d56a9;--color-mint-dark: #704b9c;--on-primary: #ffffff;--color-eat: #6f9737;--color-eat-dark: #4e6a27;--color-eat-bg: rgba(111, 151, 55, .12);--color-cook: #8aaa25;--color-cook-dark: #5a6f18;--color-cook-bg: rgba(138, 170, 37, .14);--color-shared: var(--color-text-secondary);--color-shared-bg: #efefee;--color-shared-accent: #9ca3af;--color-manual-meal: #6b8fbf;--color-manual-meal-bg: rgba(107, 143, 191, .12);--color-danger: #c53030;--color-danger-dark: #b91c1c;--color-danger-bg: #fee2e2;--color-danger-soft: #fecaca;--color-danger-pale: #fef2f2;--color-success: #3d8c3d;--color-success-dark: #317031;--color-success-bg: #ecf4ec;--color-info: #1d4ed8;--color-info-bg: #e9effd;--color-focus: var(--color-mint);--color-warning: #92661a;--color-warning-bg: #fef9ec;--color-warning-border: #f3d98a;--color-warning-icon: #f59e0b;--color-mint-alpha-06: rgba(138, 99, 181, .06);--color-mint-alpha-08: rgba(138, 99, 181, .08);--color-mint-alpha-10: rgba(138, 99, 181, .1);--color-mint-alpha-12: rgba(138, 99, 181, .12);--color-mint-alpha-16: rgba(138, 99, 181, .16);--color-mint-alpha-25: rgba(138, 99, 181, .25);--safe-area-bottom: var(--tg-safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));--nav-height: calc(70px + var(--safe-area-bottom));--page-safe-area-top: calc( var(--tg-safe-area-inset-top, env(safe-area-inset-top, 0px)) + var(--tg-content-safe-area-inset-top, 0px) );--page-padding-top: calc(12px + var(--page-safe-area-top));--page-padding-top-lg: calc(16px + var(--page-safe-area-top));--sheet-inset-top: calc(32px + var(--page-safe-area-top));--overlay-bg: rgba(30, 20, 45, .48);--color-surface-glass: rgba(255, 255, 255, .92);--shadow-card: 0 1px 3px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .02);--shadow-day: 0 1px 4px rgba(0, 0, 0, .05), 0 0 0 1px var(--color-border);--shadow-elevated: 0 8px 30px rgba(0, 0, 0, .1);--shadow-tab: 0 1px 3px rgba(0, 0, 0, .08);--shadow-drag: 0 8px 25px rgba(0, 0, 0, .15);--radius-xs: 8px;--radius-sm: 10px;--radius-md: 16px;--radius-lg: 20px;--radius-pill: 9999px;--btn-padding-sm: 9px 16px;--btn-padding-md: 12px 16px;--font-display: 2rem;--font-lg: 18px;--font-md: 16px;--font-base: 15px;--font-body: 14px;--font-sm: 13px;--font-2xs: 12px;--font-xs: 11px;--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--press-scale-sm: .99;--press-scale-md: .98;--press-scale-lg: .95;--z-fab: 800;--z-nav: 900;--z-filter: 950;--z-sheet: 990;--z-modal: 1000;--z-modal-inner: 1010;--z-modal-form: 1020;--z-confirm: 1050;--z-toast: 9999}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none;display:none}body{font-family:Onest,-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif;background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:var(--color-mint-alpha-16);line-height:1.4}button{font-family:inherit;cursor:pointer}*:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;scroll-behavior:auto!important}}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}input,textarea,select{font-family:inherit;caret-color:var(--color-text)!important}::placeholder{color:var(--color-text-secondary);opacity:1}button,a,input,label,select,textarea{touch-action:manipulation}.search-field{position:relative;display:flex;align-items:center}.search-field__icon{position:absolute;left:12px;color:var(--color-text-secondary);pointer-events:none}.search-field__input{width:100%;padding:10px 36px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-md);font-family:inherit;background:var(--color-surface);color:var(--color-text);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.search-field__input:focus{border-color:var(--color-mint);box-shadow:0 0 0 3px var(--color-mint-alpha-10)}.search-field__clear{position:absolute;right:4px;width:28px;height:28px;border:none;background:none;color:var(--color-text-secondary);font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-xs);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}@media(hover:hover){.search-field__clear:hover{background:var(--color-empty);color:var(--color-text)}}.form{display:flex;flex-direction:column;gap:16px}.form__field{display:flex;flex-direction:column;gap:4px}.form__label{font-size:var(--font-sm);font-weight:600;color:var(--color-text)}.form__input,.form__select,.form__textarea{padding:10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-md);font-family:inherit;background:var(--color-surface);color:var(--color-text);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form__input:focus,.form__select:focus,.form__textarea:focus{border-color:var(--color-mint);box-shadow:0 0 0 3px var(--color-mint-alpha-10)}.form__textarea{resize:vertical}.form__textarea--auto{resize:none;overflow:hidden;min-height:64px}.form__error{font-size:var(--font-sm);color:var(--color-danger-dark);padding:4px 0}.form__required{color:var(--color-danger);font-weight:400}.form__notice{padding:10px 12px;background:var(--color-mint-alpha-08);border:1px solid var(--color-mint-alpha-25);border-radius:var(--radius-sm);font-size:var(--font-sm);color:var(--color-text-secondary);line-height:1.45}.form__warning{display:flex;align-items:flex-start;gap:7px;padding:9px 12px;background:var(--color-warning-bg);border:1px solid var(--color-warning-border);border-radius:var(--radius-sm);font-size:var(--font-sm);color:var(--color-warning);line-height:1.45}.form__warning svg{flex-shrink:0;margin-top:1px;color:var(--color-warning-icon)}.form__submit{width:100%;padding:12px;border:none;border-radius:var(--radius-sm);background:var(--color-mint);color:var(--on-primary);font-size:var(--font-base);font-weight:600;transition:background var(--transition-fast),transform var(--transition-fast)}@media(hover:hover){.form__submit:hover:not(:disabled){background:var(--color-mint-hover)}}.form__submit:active:not(:disabled){transform:scale(var(--press-scale-md))}.form__submit:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.page-layout{max-width:480px;margin:0 auto;min-height:100%;display:flex;flex-direction:column;gap:12px}@media(min-width:600px){.page-layout{max-width:540px}}.spinner{width:28px;height:28px;border:3px solid var(--color-border);border-top-color:var(--color-mint);border-radius:50%;animation:spin .7s linear infinite}.spinner--sm{width:20px;height:20px;border-width:2px}@keyframes spin{to{transform:rotate(360deg)}}.tabs{display:flex;gap:0;background:var(--color-surface-muted);border-radius:var(--radius-sm);padding:3px}.tabs__item{flex:1;padding:8px 0;border:none;border-radius:var(--radius-xs);background:transparent;font-size:var(--font-sm);font-weight:600;color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast);-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center;gap:4px}@media(hover:hover){.tabs__item:hover:not(.tabs__item--active){color:var(--color-text)}}.tabs__item--active{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-tab)}.tabs__count{font-size:var(--font-xs);font-weight:700}.empty-state{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 24px;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);text-align:center}.empty-state__icon{color:var(--color-border)}.empty-state__text{font-size:var(--font-md);color:var(--color-text-secondary);margin:0}.empty-state__action{padding:10px 20px;border:none;border-radius:var(--radius-sm);background:var(--color-mint);color:var(--on-primary);font-size:var(--font-md);font-weight:600;cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast)}@media(hover:hover){.empty-state__action:hover{background:var(--color-mint-hover)}}.empty-state__action:active{transform:scale(var(--press-scale-md))}.empty-state__secondary{padding:8px 16px;border:none;border-radius:var(--radius-sm);background:var(--color-empty);color:var(--color-mint-dark);font-size:var(--font-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast)}@media(hover:hover){.empty-state__secondary:hover{background:var(--color-border)}}.selected-dish{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--color-empty);border-radius:var(--radius-sm);border:1.5px solid var(--color-mint)}.selected-dish__name{flex:1;font-size:var(--font-base);font-weight:500}.selected-dish__clear,.selected-dish__edit{width:24px;height:24px;border:none;background:none;color:var(--color-text-secondary);border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;transition:color var(--transition-fast),background var(--transition-fast)}.selected-dish__clear{font-size:18px}@media(hover:hover){.selected-dish__clear:hover{background:var(--color-border);color:var(--color-danger)}}@media(hover:hover){.selected-dish__edit:hover{color:var(--color-mint-dark)}}.selected-dish__replace{flex-shrink:0;border:none;background:none;font-size:var(--font-sm);font-weight:500;color:var(--color-text-secondary);padding:2px 4px;border-radius:var(--radius-xs);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}@media(hover:hover){.selected-dish__replace:hover{color:var(--color-danger);background:var(--color-danger-pale)}}.ingredient-search{display:flex;flex-direction:column;gap:8px}.ingredient-search__list{list-style:none;max-height:200px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.ingredient-search__item+.ingredient-search__item{border-top:1px solid var(--color-border)}.ingredient-search__option{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px 12px;border:0;background:none;font:inherit;font-size:var(--font-sm);color:inherit;text-align:start;cursor:pointer;transition:background var(--transition-fast);-webkit-tap-highlight-color:transparent;outline-offset:-2px}@media(hover:hover){.ingredient-search__option:hover{background:var(--color-empty)}}.ingredient-search__option:active{background:var(--color-empty)}.ingredient-search__name{font-size:var(--font-md);color:var(--color-text)}.ingredient-search__unit{font-size:var(--font-xs);color:var(--color-text-secondary)}.slide-forward-enter-from{opacity:0;transform:translate(48px)}.slide-forward-leave-to,.slide-back-enter-from{opacity:0;transform:translate(-48px)}.slide-back-leave-to{opacity:0;transform:translate(48px)}.slide-forward-enter-active,.slide-forward-leave-active,.slide-back-enter-active,.slide-back-leave-active{transition:opacity .25s ease,transform .25s ease}.pop-enter-from,.pop-leave-to{opacity:0;transform:scale(.7)}.pop-enter-active,.pop-leave-active{transition:opacity var(--transition-fast),transform var(--transition-fast)!important}.bottom-nav[data-v-d7c22581]{display:flex;width:100%;flex-shrink:0;background:var(--color-surface-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--color-border);padding:6px 0 calc(6px + var(--safe-area-bottom))}@media(min-width:600px){.bottom-nav[data-v-d7c22581]{max-width:540px;margin:0 auto;border-radius:var(--radius-md) var(--radius-md) 0 0}}.bottom-nav__tab[data-v-d7c22581]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px 8px;text-decoration:none;color:var(--color-text-secondary);transition:color var(--transition-fast);-webkit-tap-highlight-color:transparent;min-width:0}@media(hover:hover){.bottom-nav__tab:hover:not(.bottom-nav__tab--active) .bottom-nav__tab-inner[data-v-d7c22581]{background:var(--color-empty)}}.bottom-nav__tab--active[data-v-d7c22581]{color:var(--color-mint-dark)}.bottom-nav__tab--active .bottom-nav__tab-inner[data-v-d7c22581]{background:var(--color-mint-alpha-10)}.bottom-nav__tab--active .bottom-nav__label[data-v-d7c22581]{font-weight:700}.bottom-nav__tab-inner[data-v-d7c22581]{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 14px;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.bottom-nav__icon[data-v-d7c22581]{display:flex;align-items:center;justify-content:center;width:24px;height:24px}.bottom-nav__label[data-v-d7c22581]{font-size:var(--font-xs);font-weight:600;letter-spacing:.01em}.consent[data-v-35e35ef0]{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:24px 16px;background:var(--color-bg)}.consent__card[data-v-35e35ef0]{width:100%;max-width:400px;display:flex;flex-direction:column;gap:24px;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:32px 24px}.consent__title[data-v-35e35ef0]{font-size:var(--font-lg);font-weight:700;color:var(--color-text);margin:0;text-align:center}.consent__checkboxes[data-v-35e35ef0]{display:flex;flex-direction:column;gap:16px}.consent__label[data-v-35e35ef0]{display:flex;align-items:flex-start;gap:12px;cursor:pointer}.consent__checkbox[data-v-35e35ef0]{width:20px;height:20px;flex-shrink:0;margin-top:2px;accent-color:var(--color-mint);cursor:pointer}.consent__text[data-v-35e35ef0]{font-size:var(--font-body);color:var(--color-text);line-height:1.5}.consent__link[data-v-35e35ef0]{color:var(--color-mint-dark);text-decoration:underline}@media(hover:hover){.consent__link[data-v-35e35ef0]:hover{opacity:.8}}.consent__error[data-v-35e35ef0]{margin:0;font-size:var(--font-sm);color:var(--color-danger-dark)}.consent__btn[data-v-35e35ef0]{width:100%;padding:14px 16px;border:none;border-radius:var(--radius-sm);background:var(--color-mint);color:var(--on-primary);font-size:var(--font-body);font-weight:600;cursor:pointer;transition:opacity var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:8px}.consent__btn[data-v-35e35ef0]:disabled{opacity:.45;cursor:not-allowed}@media(hover:hover){.consent__btn[data-v-35e35ef0]:not(:disabled):hover{opacity:.85}}.app-loading[data-v-40dbeebf]{display:flex;align-items:center;justify-content:center;min-height:100dvh}.app-shell[data-v-40dbeebf]{display:flex;flex-direction:column;height:100dvh;overflow:hidden}.app-shell__content[data-v-40dbeebf]{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.week-nav[data-v-caca6d90]{display:flex;align-items:center;gap:8px;min-height:52px;position:sticky;top:var(--page-padding-top);z-index:2}@media(min-width:600px){.week-nav[data-v-caca6d90]{top:var(--page-padding-top-lg)}}.week-nav__btn[data-v-caca6d90]{flex-shrink:0;width:44px;height:44px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-card);display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.week-nav__btn[data-v-caca6d90]:active{background:var(--color-empty);transform:scale(var(--press-scale-md))}.week-nav__btn[data-v-caca6d90]:disabled{opacity:.5;cursor:default;pointer-events:none}.week-nav__btn--today[data-v-caca6d90]{color:var(--color-text-secondary)}.week-nav__btn--today[data-v-caca6d90]:active{background:var(--color-mint-alpha-10)}.week-nav__center[data-v-caca6d90]{display:flex;align-items:center;justify-content:center;flex:1;min-width:0;height:44px;padding:0 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.week-nav__label[data-v-caca6d90]{flex:1;min-width:0;font-size:clamp(var(--font-sm),4.5vw,var(--font-lg));font-weight:700;letter-spacing:-.01em;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-nav__spacer[data-v-caca6d90]{width:32px;height:32px;flex-shrink:0}.week-nav__shopping-btn[data-v-caca6d90]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;background:none;border-radius:var(--radius-xs);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;transition:color var(--transition-fast),background var(--transition-fast);-webkit-tap-highlight-color:transparent}@media(hover:hover){.week-nav__shopping-btn[data-v-caca6d90]:hover{color:var(--color-mint-dark);background:var(--color-mint-alpha-10)}}.week-nav__shopping-btn[data-v-caca6d90]:active{background:var(--color-empty)}.meal-card[data-v-c9218359]{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:8px 12px;border-radius:var(--radius-sm);background:var(--card-bg, var(--color-empty));border:none;border-left:3px solid var(--card-accent, var(--color-mint));font-size:var(--font-sm);text-align:left;cursor:pointer;transition:box-shadow var(--transition-fast),transform var(--transition-fast);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.meal-card--shared[data-v-c9218359]{border-left-color:var(--card-accent, var(--color-shared-accent))}.meal-card--manual[data-v-c9218359]{border-left-color:var(--card-accent, var(--color-manual-meal));background:var(--color-manual-meal-bg)}@media(hover:hover){.meal-card[data-v-c9218359]:hover{box-shadow:var(--shadow-card);border-color:var(--color-mint-alpha-10)}}.meal-card--ghost[data-v-c9218359]{opacity:.5;border:2px dashed var(--card-accent, var(--color-mint));background:var(--card-bg, var(--color-empty))}.meal-card--chosen[data-v-c9218359]{box-shadow:var(--shadow-elevated);transform:scale(1.02);cursor:grabbing;transition:none}.meal-card--drag[data-v-c9218359]{opacity:.9;transform:rotate(2deg);box-shadow:var(--shadow-drag);transition:none}.meal-card--saving[data-v-c9218359]{opacity:.65;pointer-events:none}.meal-card__name[data-v-c9218359]{font-weight:500;line-height:1.3;color:var(--color-text);min-width:0;-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sortable-fallback[data-v-c9218359]{touch-action:none;transition:none}.day-badge[data-v-f2b5a15f]{display:flex;flex-direction:column;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border-radius:var(--radius-sm);background:var(--color-mint-alpha-10);line-height:1.1;transition:background var(--transition-normal)}.day-badge--active[data-v-f2b5a15f]{background:var(--color-mint)}.day-badge__day[data-v-f2b5a15f]{font-weight:700;font-size:var(--font-xs);color:var(--color-mint-dark);text-transform:uppercase;letter-spacing:.06em}.day-badge--active .day-badge__day[data-v-f2b5a15f]{color:var(--on-primary)}.day-badge__date[data-v-f2b5a15f]{font-weight:700;font-size:var(--font-md);color:var(--color-mint-dark)}.day-badge--active .day-badge__date[data-v-f2b5a15f]{color:var(--on-primary)}.day-row[data-v-df3da2db]{display:grid;grid-template-columns:1fr 1fr;row-gap:8px;column-gap:0;align-items:start;padding:12px;background:var(--color-surface);border-radius:var(--radius-md);border:1px solid transparent;box-shadow:var(--shadow-day);transition:opacity var(--transition-normal),border-color var(--transition-normal)}.day-row--muted[data-v-df3da2db]{opacity:.85}.day-row--today[data-v-df3da2db]{border-color:var(--color-mint-alpha-25)}.day-row__label[data-v-df3da2db]{grid-column:1/-1;display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin-bottom:2px}.day-row__label-text[data-v-df3da2db]{display:flex;flex-direction:row;align-items:center;gap:10px}.day-row__today-text[data-v-df3da2db]{font-size:var(--font-base);font-weight:600;color:var(--color-mint-dark)}.day-row__shopping-btn[data-v-df3da2db]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:none;background:var(--color-mint-alpha-10);border-radius:var(--radius-sm);color:var(--color-mint-dark);cursor:pointer;flex-shrink:0;transition:color var(--transition-fast),background var(--transition-fast);-webkit-tap-highlight-color:transparent}@media(hover:hover){.day-row__shopping-btn[data-v-df3da2db]:hover{background:var(--color-mint-alpha-25)}}.day-row__shopping-btn[data-v-df3da2db]:active{background:var(--color-mint-alpha-25)}.day-row__eat[data-v-df3da2db],.day-row__cook[data-v-df3da2db]{display:flex;flex-direction:column;min-width:0;padding:4px 6px}.day-row__eat[data-v-df3da2db]{--card-bg: var(--color-eat-bg);--card-accent: var(--color-eat);padding-left:16px;border-left:1px solid var(--color-border)}.day-row__cook[data-v-df3da2db]{--card-bg: var(--color-cook-bg);--card-accent: var(--color-cook);padding-right:17px}.day-row__drop-zone[data-v-df3da2db]{display:flex;flex-direction:column;justify-content:end;border-radius:var(--radius-xs);outline:1.5px dashed transparent;outline-offset:4px;transition:outline-color var(--transition-fast)}.day-row__col-header[data-v-df3da2db]{display:flex;align-items:center;gap:4px;margin-bottom:6px;font-size:var(--font-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-secondary)}.day-row__items[data-v-df3da2db]{display:flex;flex-direction:column;gap:6px;min-height:1px}.day-row__items[data-v-df3da2db]:not(:empty){margin-bottom:6px}.day-row__items:empty+.day-row__add[data-v-df3da2db]{margin-top:0}.day-row__add[data-v-df3da2db]{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;padding:7px;border:1px dashed var(--color-border);border-radius:var(--radius-xs);background:none;font-weight:500;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast);color:var(--color-text-secondary)}@media(hover:hover){.day-row__add--cook[data-v-df3da2db]:hover{color:var(--color-mint-dark);border-color:var(--color-mint-alpha-25)}}@media(hover:hover){.day-row__add--eat[data-v-df3da2db]:hover{color:var(--color-mint-dark);border-color:var(--color-mint-alpha-25)}}.day-row__add-icon[data-v-df3da2db]{font-size:var(--font-base);line-height:1}.day-row__add-text[data-v-df3da2db]{font-size:var(--font-xs)}body.is-dragging-cooking .day-row__cook .day-row__drop-zone,body.is-dragging-meals .day-row__eat .day-row__drop-zone{outline-color:var(--color-border-strong)}body.is-dragging-cooking .day-row__cook .day-row__items,body.is-dragging-meals .day-row__eat .day-row__items{min-height:50px}.week-grid[data-v-6801ddfb]{display:flex;flex-direction:column;gap:12px}.week-grid__past-toggle[data-v-6801ddfb]{display:flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast);-webkit-tap-highlight-color:transparent}.week-grid__past-toggle[data-v-6801ddfb]:active{background:var(--color-border)}.week-grid__past-chevron[data-v-6801ddfb]{flex-shrink:0;color:var(--color-text-secondary);transition:transform var(--transition-normal)}.week-grid__past-chevron--open[data-v-6801ddfb]{transform:rotate(90deg)}.week-grid__past-label[data-v-6801ddfb]{font-size:var(--font-sm);font-weight:500;color:var(--color-text-secondary)}.week-grid__past-days[data-v-6801ddfb]{display:flex;flex-direction:column;gap:12px}.week-grid__today-divider[data-v-6801ddfb],.week-grid__section-divider[data-v-6801ddfb]{display:flex;align-items:center;gap:12px;padding:0 16px}.week-grid__today-line[data-v-6801ddfb],.week-grid__section-line[data-v-6801ddfb]{flex:1;height:1px;background:var(--color-border)}.week-grid__today-badge[data-v-6801ddfb],.week-grid__section-badge[data-v-6801ddfb]{font-size:var(--font-xs);font-weight:600;color:var(--color-mint-dark);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.week-grid__next-toggle[data-v-6801ddfb]{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;padding:10px 16px;margin:4px 0 0;border:1px dashed var(--color-border);border-radius:var(--radius-md);background:transparent;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.week-grid__next-toggle[data-v-6801ddfb]:active{background:var(--color-empty)}.week-grid__next-toggle[data-v-6801ddfb]:disabled{opacity:.6;cursor:default}.week-grid__next-text[data-v-6801ddfb]{font-size:var(--font-sm);font-weight:500;color:var(--color-text-secondary)}.week-grid__next-spinner[data-v-6801ddfb]{display:flex;align-items:center;justify-content:center;width:20px;height:20px}.expand-enter-active[data-v-6801ddfb]{transition:opacity var(--transition-normal),max-height .35s ease;overflow:hidden}.expand-leave-active[data-v-6801ddfb]{transition:opacity var(--transition-fast),max-height .25s ease;overflow:hidden}.expand-enter-from[data-v-6801ddfb],.expand-leave-to[data-v-6801ddfb]{opacity:0;max-height:0}.expand-enter-to[data-v-6801ddfb],.expand-leave-from[data-v-6801ddfb]{opacity:1;max-height:2000px}.modal-overlay[data-v-e83f7ffd]{position:fixed;left:0;right:0;background:var(--overlay-bg);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;padding:var(--sheet-inset-top) 0 0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}@media(min-width:600px){.modal-overlay[data-v-e83f7ffd]{align-items:center;padding:var(--sheet-inset-top) 16px 16px}}.modal-panel[data-v-e83f7ffd]{background:var(--color-surface);border-radius:var(--radius-md) var(--radius-md) 0 0;box-shadow:var(--shadow-elevated);width:100%;max-width:420px;max-height:100%;margin-top:auto;display:flex;flex-direction:column;overflow:hidden;flex-shrink:0}@media(min-width:600px){.modal-panel[data-v-e83f7ffd]{border-radius:var(--radius-md);margin:auto 0}}.modal-header[data-v-e83f7ffd]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--color-border);flex-shrink:0}.modal-title[data-v-e83f7ffd]{font-size:var(--font-lg);font-weight:700;color:var(--color-text);margin:0}.modal-close[data-v-e83f7ffd]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:none;font-size:22px;color:var(--color-text-secondary);border-radius:var(--radius-xs);transition:background var(--transition-fast)}@media(hover:hover){.modal-close[data-v-e83f7ffd]:hover{background:var(--color-empty)}}.modal-body[data-v-e83f7ffd]{padding:16px 20px;overflow-y:auto;flex:1;min-height:0;overscroll-behavior:contain}.modal-panel--no-footer .modal-body[data-v-e83f7ffd]{padding-bottom:calc(16px + var(--safe-area-bottom))}.modal-footer[data-v-e83f7ffd]{padding:12px 20px calc(16px + var(--safe-area-bottom));border-top:1px solid var(--color-border);flex-shrink:0}.modal-enter-active[data-v-e83f7ffd],.modal-leave-active[data-v-e83f7ffd]{transition:opacity var(--transition-normal)}.modal-enter-active .modal-panel[data-v-e83f7ffd]{transition:transform .35s cubic-bezier(.32,.72,0,1)}.modal-leave-active .modal-panel[data-v-e83f7ffd]{transition:transform var(--transition-normal)}.modal-enter-from[data-v-e83f7ffd],.modal-leave-to[data-v-e83f7ffd]{opacity:0}.modal-enter-from .modal-panel[data-v-e83f7ffd],.modal-leave-to .modal-panel[data-v-e83f7ffd]{transform:translateY(100%)}@media(min-width:600px){.modal-enter-from .modal-panel[data-v-e83f7ffd],.modal-leave-to .modal-panel[data-v-e83f7ffd]{transform:scale(.95)}}.ownership-badge[data-v-529419db]{display:inline-flex;align-items:center;gap:.25em;font-size:var(--font-xs);font-weight:600;padding:2px 8px;border-radius:var(--radius-sm);white-space:nowrap;flex-shrink:0;width:fit-content}.ownership-badge--own[data-v-529419db]{background:var(--color-mint-alpha-12);color:var(--color-mint-dark)}.ownership-badge--shared[data-v-529419db]{background:var(--color-shared-bg);color:var(--color-shared)}.category-chips[data-v-c7cc9004]{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}.category-chips[data-v-c7cc9004]::-webkit-scrollbar{display:none}.category-chips__chip[data-v-c7cc9004]{flex-shrink:0;padding:6px 14px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);font-size:var(--font-xs);font-weight:500;color:var(--color-text-secondary);white-space:nowrap;cursor:pointer;outline-offset:-2px;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}@media(hover:hover){.category-chips__chip[data-v-c7cc9004]:hover{border-color:var(--color-mint)}}.category-chips__chip--active[data-v-c7cc9004]{background:var(--color-mint);border-color:var(--color-mint);color:var(--on-primary)}.picker-overlay[data-v-172c36cc]{position:fixed;inset:0;background:var(--overlay-bg);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;padding-top:var(--sheet-inset-top)}.picker-panel[data-v-172c36cc]{background:var(--color-surface);border-radius:var(--radius-md) var(--radius-md) 0 0;box-shadow:var(--shadow-elevated);width:100%;max-width:420px;height:100%;display:flex;flex-direction:column;overflow:hidden}.picker-panel--preview[data-v-172c36cc]{height:auto;max-height:100%}.picker-header[data-v-172c36cc]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--color-border);flex-shrink:0}.picker-title[data-v-172c36cc]{font-size:var(--font-lg);font-weight:700;color:var(--color-text);margin:0}.picker-close[data-v-172c36cc]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:none;font-size:22px;color:var(--color-text-secondary);border-radius:var(--radius-xs);transition:background var(--transition-fast);cursor:pointer}@media(hover:hover){.picker-close[data-v-172c36cc]:hover{background:var(--color-empty)}}.picker-search[data-v-172c36cc]{position:relative;display:flex;align-items:center;padding:10px 16px;border-bottom:1px solid var(--color-border);flex-shrink:0}.picker-search__icon[data-v-172c36cc]{position:absolute;left:28px;width:16px;height:16px;color:var(--color-text-secondary);pointer-events:none}.picker-search__input[data-v-172c36cc]{width:100%;padding:8px 32px 8px 36px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-md);background:var(--color-empty);color:var(--color-text);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.picker-search__input[data-v-172c36cc]:focus{border-color:var(--color-mint);box-shadow:0 0 0 3px var(--color-mint-alpha-10)}.picker-search__clear[data-v-172c36cc]{position:absolute;right:24px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:none;font-size:18px;color:var(--color-text-secondary);cursor:pointer}.picker-tabs[data-v-172c36cc]{display:flex;border-bottom:1px solid var(--color-border);flex-shrink:0}.picker-tabs__item[data-v-172c36cc]{flex:1;padding:10px;border:none;background:none;font-size:var(--font-sm);font-weight:500;color:var(--color-text-secondary);cursor:pointer;border-bottom:2px solid transparent;outline-offset:-2px;transition:color var(--transition-fast),border-color var(--transition-fast)}.picker-tabs__item--active[data-v-172c36cc]{color:var(--color-mint-dark);border-bottom-color:var(--color-mint)}.picker-filter-row[data-v-172c36cc]{display:flex;align-items:center;gap:8px;padding:8px 16px;border-bottom:1px solid var(--color-border);flex-shrink:0}.picker-body[data-v-172c36cc]{flex:1;overflow-y:auto;overscroll-behavior:contain;padding-bottom:var(--safe-area-bottom)}.picker-list[data-v-172c36cc]{list-style:none;margin:0;padding:0}.picker-item[data-v-172c36cc]{border-bottom:1px solid var(--color-border)}.picker-item[data-v-172c36cc]:last-child{border-bottom:none}.picker-item__option[data-v-172c36cc]{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:13px 16px;border:0;background:none;font:inherit;color:inherit;text-align:start;cursor:pointer;transition:background var(--transition-fast);-webkit-tap-highlight-color:transparent;outline-offset:-2px}.picker-item__option[data-v-172c36cc]:active{background:var(--color-empty)}.picker-item__info[data-v-172c36cc]{display:flex;flex-direction:column;gap:2px;min-width:0}.picker-item__name[data-v-172c36cc]{font-size:var(--font-base);font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-item__category[data-v-172c36cc]{font-size:var(--font-xs);color:var(--color-text-secondary)}.picker-status[data-v-172c36cc]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 20px;text-align:center}.picker-status--error p[data-v-172c36cc]{font-size:var(--font-sm);color:var(--color-text-secondary)}.picker-empty[data-v-172c36cc]{font-size:var(--font-sm);color:var(--color-text-secondary);margin:0}.picker-retry[data-v-172c36cc]{padding:8px 20px;border:none;border-radius:var(--radius-sm);background:var(--color-mint);color:var(--on-primary);font-size:var(--font-sm);font-weight:600;cursor:pointer}.picker-sentinel[data-v-172c36cc]{display:flex;justify-content:center;padding:16px;min-height:40px}.picker-preview-body[data-v-172c36cc]{padding:4px 0}.picker-preview-footer[data-v-172c36cc]{padding:12px 16px calc(16px + var(--safe-area-bottom));border-top:1px solid var(--color-border);flex-shrink:0}.picker-select-btn[data-v-172c36cc]{width:100%;padding:14px;border:none;border-radius:var(--radius-sm);background:var(--color-mint);color:var(--on-primary);font-size:var(--font-base);font-weight:700;cursor:pointer;transition:background var(--transition-fast)}@media(hover:hover){.picker-select-btn[data-v-172c36cc]:hover{background:var(--color-mint-hover)}}.preview-section[data-v-172c36cc]{display:flex;flex-direction:column;gap:8px;padding:12px 16px;border-bottom:1px solid var(--color-border)}.preview-section[data-v-172c36cc]:last-child{border-bottom:none}.preview-meta[data-v-172c36cc]{font-size:var(--font-sm);color:var(--color-text-secondary);margin:0}.preview-label[data-v-172c36cc]{font-size:var(--font-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.preview-ingredients[data-v-172c36cc]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.preview-ingredient[data-v-172c36cc]{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.preview-ingredient__name[data-v-172c36cc]{font-size:var(--font-sm);color:var(--color-text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-ingredient__right[data-v-172c36cc]{display:flex;align-items:center;gap:4px;flex-shrink:0}.preview-ingredient__opt[data-v-172c36cc]{font-size:var(--font-xs);color:var(--color-text-secondary);font-style:italic}.preview-ingredient__amount[data-v-172c36cc]{font-size:var(--font-sm);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.preview-recipe[data-v-172c36cc]{font-size:var(--font-sm);color:var(--color-text);line-height:1.6;margin:0;white-space:pre-line}.modal-enter-active[data-v-172c36cc],.modal-leave-active[data-v-172c36cc]{transition:opacity .25s ease}.modal-enter-active .picker-panel[data-v-172c36cc]{transition:transform .35s cubic-bezier(.32,.72,0,1)}.modal-leave-active .picker-panel[data-v-172c36cc]{transition:transform .25s cubic-bezier(.32,.72,0,1)}.modal-enter-from[data-v-172c36cc],.modal-leave-to[data-v-172c36cc]{opacity:0}.modal-enter-from .picker-panel[data-v-172c36cc],.modal-leave-to .picker-panel[data-v-172c36cc]{transform:translateY(100%)}.dish-search[data-v-d6a8dd63]{display:flex;flex-direction:column;gap:8px}.dish-search__input[data-v-d6a8dd63]{width:100%;padding:10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-md);font-family:inherit;background:var(--color-surface);color:var(--color-text);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.dish-search__input[data-v-d6a8dd63]:focus{border-color:var(--color-mint);box-shadow:0 0 0 3px var(--color-mint-alpha-10)}.dish-search__list[data-v-d6a8dd63]{list-style:none;max-height:200px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.dish-search__item+.dish-search__item[data-v-d6a8dd63]{border-top:1px solid var(--color-border)}.dish-search__option[data-v-d6a8dd63]{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:10px 12px;border:0;background:none;font:inherit;color:inherit;text-align:start;cursor:pointer;transition:background var(--transition-fast);outline-offset:-2px}@media(hover:hover){.dish-search__option[data-v-d6a8dd63]:hover{background:var(--color-empty)}}.dish-search__info[data-v-d6a8dd63]{display:flex;flex-direction:column;gap:2px;min-width:0}.dish-search__name[data-v-d6a8dd63]{font-size:var(--font-sm);font-weight:500}.dish-search__category[data-v-d6a8dd63]{font-size:var(--font-xs);color:var(--color-text-secondary)}.dish-search__status[data-v-d6a8dd63]{font-size:var(--font-sm);color:var(--color-text-secondary);padding:8px 0}.dish-search__actions[data-v-d6a8dd63]{display:flex;gap:8px;flex-wrap:wrap}.dish-search__pick[data-v-d6a8dd63]{flex:1;padding:var(--btn-padding-sm);border:1.5px solid var(--color-mint-alpha-25);border-radius:var(--radius-sm);background:var(--color-mint-alpha-10);font-size:var(--font-sm);font-weight:600;color:var(--color-mint-dark);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast);white-space:nowrap}@media(hover:hover){.dish-search__pick[data-v-d6a8dd63]:hover{background:var(--color-mint-alpha-25);border-color:var(--color-mint)}}.dish-search__create[data-v-d6a8dd63],.dish-search__ai[data-v-d6a8dd63]{flex:1;padding:var(--btn-padding-sm);border:1.5px dashed var(--color-border);border-radius:var(--radius-sm);background:transparent;font-size:var(--font-sm);font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast);white-space:nowrap}@media(hover:hover){.dish-search__create[data-v-d6a8dd63]:hover{background:var(--color-empty);border-color:var(--color-mint);color:var(--color-mint-dark)}}.dish-search__ai[data-v-d6a8dd63]{border-style:solid;border-color:var(--color-mint-alpha-25);background:var(--color-mint-alpha-10);color:var(--color-mint-dark);font-weight:600}@media(hover:hover){.dish-search__ai[data-v-d6a8dd63]:hover{background:var(--color-mint-alpha-25);border-color:var(--color-mint)}}.form__duplicate-actions[data-v-ba218578]{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--color-mint-alpha-10);border:1.5px solid var(--color-mint-alpha-25);border-radius:var(--radius-sm)}.form__duplicate-use[data-v-ba218578]{flex-shrink:0;padding:7px 14px;border:1.5px solid var(--color-mint);border-radius:var(--radius-sm);background:var(--color-mint);color:var(--on-primary);font-size:var(--font-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast),opacity var(--transition-fast)}@media(hover:hover){.form__duplicate-use[data-v-ba218578]:hover{background:var(--color-mint-hover)}}.form__duplicate-use[data-v-ba218578]:disabled{opacity:.6;cursor:default}.form__duplicate-hint[data-v-ba218578]{font-size:var(--font-sm);color:var(--color-text-secondary)}.form__section[data-v-ba218578]{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--color-border);padding-top:16px}.ingredient-row[data-v-ba218578]{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--color-border);font-size:var(--font-sm)}.ingredient-row[data-v-ba218578]:last-of-type{border-bottom:none}.ingredient-row--optional[data-v-ba218578]{opacity:.75}.ingredient-row--highlighted[data-v-ba218578]{padding:8px;border-bottom:none;border-radius:var(--radius-sm);background:var(--color-warning-bg);box-shadow:inset 0 0 0 1px var(--color-warning-border)}.ingredient-row__name[data-v-ba218578]{flex:1;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ingredient-row__amount[data-v-ba218578]{flex-shrink:0;font-size:var(--font-sm);color:var(--color-text-secondary);white-space:nowrap}.ingredient-row__opt-label[data-v-ba218578]{font-size:var(--font-xs);color:var(--color-mint-dark);background:var(--color-mint-alpha-12);border-radius:var(--radius-xs);padding:1px 5px;font-weight:500;white-space:nowrap}.ingredient-row__edit[data-v-ba218578],.ingredient-row__remove[data-v-ba218578]{flex-shrink:0;width:24px;height:24px;border:none;background:none;color:var(--color-text-secondary);border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;opacity:.75;transition:opacity var(--transition-fast),color var(--transition-fast),background var(--transition-fast);padding:0}@media(hover:hover){.ingredient-row__edit[data-v-ba218578]:hover{opacity:1;color:var(--color-mint-dark);background:var(--color-mint-alpha-10)}}@media(hover:hover){.ingredient-row:hover .ingredient-row__edit[data-v-ba218578]{opacity:1;color:var(--color-mint-dark);background:var(--color-mint-alpha-10)}}@media(hover:hover){.ingredient-row__remove[data-v-ba218578]:hover{opacity:1;color:var(--color-danger);background:var(--color-danger-pale)}}.ingredient-amount[data-v-ba218578]{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--color-empty);border-radius:var(--radius-xs);border:1.5px solid var(--color-border)}.ingredient-amount__header[data-v-ba218578]{display:flex;align-items:center;justify-content:space-between}.ingredient-amount__name[data-v-ba218578]{font-size:var(--font-sm);font-weight:600}.ingredient-amount__mode[data-v-ba218578]{font-size:var(--font-xs);color:var(--color-text-secondary);font-style:italic}.ingredient-amount__row[data-v-ba218578]{display:flex;align-items:center;gap:8px}.ingredient-amount__unit[data-v-ba218578]{font-size:var(--font-sm);color:var(--color-text-secondary);white-space:nowrap}.ingredient-amount__taste-hint[data-v-ba218578]{font-size:var(--font-sm);color:var(--color-text-secondary);font-style:italic;margin:0}.ingredient-amount__optional[data-v-ba218578]{display:flex;align-items:center;gap:8px;font-size:var(--font-sm);color:var(--color-text-secondary)}.ingredient-amount__actions[data-v-ba218578]{display:flex;gap:8px}.btn[data-v-ba218578]{padding:8px 16px;border:none;border-radius:var(--radius-xs);font-size:var(--font-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.btn--sm[data-v-ba218578]{background:var(--color-mint);color:var(--on-primary)}@media(hover:hover){.btn--sm[data-v-ba218578]:hover{background:var(--color-mint-hover)}}.btn--ghost[data-v-ba218578]{background:transparent;color:var(--color-text-secondary)}@media(hover:hover){.btn--ghost[data-v-ba218578]:hover{background:var(--color-empty)}}.dish-search__create[data-v-ba218578]{align-self:flex-start;padding:var(--btn-padding-sm);border:1.5px dashed var(--color-border);border-radius:var(--radius-sm);background:transparent;font-size:var(--font-sm);font-weight:500;color:var(--color-text-secondary);transition:background var(--transition-fast),border-color var(--transition-fast)}@media(hover:hover){.dish-search__create[data-v-ba218578]:hover{background:var(--color-empty);border-color:var(--color-mint);color:var(--color-mint-dark)}}.ai-usage[data-v-693c570a]{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-card);color:var(--color-text)}.ai-usage--empty[data-v-693c570a]{background:var(--color-warning-bg);border-color:var(--color-warning-border)}.ai-usage--empty .ai-usage__title[data-v-693c570a]{color:var(--color-warning)}.ai-usage__row[data-v-693c570a]{display:flex;align-items:center;justify-content:space-between;gap:12px}.ai-usage__title[data-v-693c570a]{font-size:var(--font-xs);font-weight:700;color:var(--color-text-secondary)}.ai-usage__value[data-v-693c570a],.ai-usage__remaining[data-v-693c570a]{font-size:var(--font-sm);line-height:1.35}.ai-usage__value[data-v-693c570a]{color:var(--color-text);font-weight:600}.ai-usage__remaining[data-v-693c570a]{color:var(--color-text-secondary)}.ai-usage__bar[data-v-693c570a]{width:100%;height:4px;border-radius:var(--radius-pill);background:var(--color-border);overflow:hidden}.ai-usage__bar-fill[data-v-693c570a]{height:100%;border-radius:var(--radius-pill);background:var(--color-mint);transition:width var(--transition-normal)}.ai-draft__intro[data-v-de0b7f77],.ai-draft__notice[data-v-de0b7f77]{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-empty)}.ai-draft__notice-head[data-v-de0b7f77]{display:flex;align-items:center;gap:8px}.ai-draft__notice--error[data-v-de0b7f77]{border-color:var(--color-danger-soft);background:var(--color-danger-pale)}.ai-draft__title[data-v-de0b7f77]{margin:0;color:var(--color-text);font-size:var(--font-md);font-weight:700}.ai-draft__text[data-v-de0b7f77]{margin:0;color:var(--color-text-secondary);font-size:var(--font-sm);line-height:1.45;white-space:pre-line}.ai-draft__capabilities[data-v-de0b7f77]{display:flex;flex-direction:column;gap:4px;margin:4px 0 0;padding-left:18px;color:var(--color-text-secondary);font-size:var(--font-sm);line-height:1.4}.ai-draft__source[data-v-de0b7f77]{min-height:180px;resize:vertical}.ai-draft__source-preview[data-v-de0b7f77]{max-height:180px;overflow-y:auto;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-sm);line-height:1.45;white-space:pre-wrap}.ai-draft__source-block[data-v-de0b7f77]{display:flex;flex-direction:column;gap:8px}.ai-draft__source-toggle[data-v-de0b7f77]{align-self:flex-start;padding:0;border:none;background:transparent;color:var(--color-mint-dark);font-size:var(--font-sm);font-weight:600}@media(hover:hover){.ai-draft__source-toggle[data-v-de0b7f77]:hover{color:var(--color-text)}}.ai-draft__readonly[data-v-de0b7f77]{display:flex;flex-direction:column;gap:14px}.ai-draft__ingredient-main[data-v-de0b7f77]{display:flex;flex-direction:column;gap:2px;min-width:0}.ai-draft__ingredient-category[data-v-de0b7f77]{color:var(--color-text-secondary);font-size:var(--font-xs)}.ai-draft__recipe[data-v-de0b7f77]{min-height:120px;resize:vertical}.ai-draft__counter[data-v-de0b7f77]{align-self:flex-end;margin-top:-10px;font-size:var(--font-xs);color:var(--color-text-secondary)}.ai-draft__secondary-btn[data-v-de0b7f77]{align-self:flex-start;margin-top:8px;padding:9px 14px;border:1px solid var(--color-danger-soft);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-danger-dark);font-size:var(--font-sm);font-weight:600}.ai-draft__search-head[data-v-de0b7f77]{display:flex;align-items:center;justify-content:space-between;gap:8px}.ai-draft__progress[data-v-de0b7f77]{display:flex;flex-direction:column;gap:16px;padding:14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-empty)}.ai-draft__steps[data-v-de0b7f77]{display:flex;flex-direction:column;gap:10px;list-style:none;padding:0;margin:0}.ai-draft__step[data-v-de0b7f77]{display:flex;align-items:center;gap:10px;font-size:var(--font-sm);transition:color var(--transition-fast)}.ai-draft__step--pending[data-v-de0b7f77],.ai-draft__step--done[data-v-de0b7f77]{color:var(--color-text-secondary)}.ai-draft__step--loading[data-v-de0b7f77]{color:var(--color-text);font-weight:600}.ai-draft__step-icon[data-v-de0b7f77]{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.ai-draft__step-dot[data-v-de0b7f77]{display:block;width:8px;height:8px;border-radius:50%;background:var(--color-border)}.ai-draft__step-check[data-v-de0b7f77]{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--color-mint);color:var(--on-primary)}.ai-draft__step-label[data-v-de0b7f77]{flex:1}.form__section[data-v-de0b7f77]{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--color-border);padding-top:16px}.ai-ingredient__badge[data-v-de0b7f77]{flex-shrink:0;padding:2px 6px;border-radius:var(--radius-xs);background:var(--color-info-bg);color:var(--color-info);font-size:var(--font-xs);font-weight:600}.ai-ingredient__badge--new[data-v-de0b7f77]{background:var(--color-mint-alpha-10);color:var(--color-mint-dark)}.ingredient-row[data-v-de0b7f77]{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;grid-template-areas:"name amount edit remove" "meta meta meta meta";align-items:center;column-gap:8px;row-gap:2px;padding:8px 0;border-bottom:1px solid var(--color-border);font-size:var(--font-sm)}.ingredient-row[data-v-de0b7f77]:last-of-type{border-bottom:none}.ingredient-row__name[data-v-de0b7f77]{grid-area:name;min-width:0;color:var(--color-text);font-weight:500;overflow-wrap:anywhere}.ingredient-row__meta[data-v-de0b7f77]{grid-area:meta;display:flex;align-items:center;gap:6px;min-width:0}.ingredient-row__category[data-v-de0b7f77]{min-width:0;overflow:hidden;color:var(--color-text-secondary);font-size:var(--font-xs);text-overflow:ellipsis;white-space:nowrap}.ingredient-row__amount[data-v-de0b7f77]{grid-area:amount;color:var(--color-text-secondary);font-size:var(--font-sm);white-space:nowrap}.ingredient-row__opt-label[data-v-de0b7f77]{flex-shrink:0;padding:1px 5px;border-radius:var(--radius-xs);background:var(--color-mint-alpha-12);color:var(--color-mint-dark);font-size:var(--font-xs);font-weight:500;white-space:nowrap}.ingredient-row__edit[data-v-de0b7f77],.ingredient-row__remove[data-v-de0b7f77]{width:24px;height:24px;border:none;border-radius:var(--radius-xs);background:none;color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;opacity:.75;padding:0;transition:opacity var(--transition-fast),color var(--transition-fast),background var(--transition-fast)}.ingredient-row__edit[data-v-de0b7f77]{grid-area:edit}@media(hover:hover){.ingredient-row__edit[data-v-de0b7f77]:hover{opacity:1;color:var(--color-mint-dark);background:var(--color-mint-alpha-10)}}@media(hover:hover){.ingredient-row:hover .ingredient-row__edit[data-v-de0b7f77]{opacity:1;color:var(--color-mint-dark);background:var(--color-mint-alpha-10)}}.ingredient-row__remove[data-v-de0b7f77]{grid-area:remove}@media(hover:hover){.ingredient-row__remove[data-v-de0b7f77]:hover{opacity:1;background:var(--color-danger-pale);color:var(--color-danger)}}.ingredient-row__suggestions[data-v-de0b7f77]{display:flex;align-items:center;flex-wrap:wrap;gap:4px;padding:4px 0 8px;margin-top:-4px}.ingredient-row__suggestions-label[data-v-de0b7f77]{font-size:var(--font-xs);color:var(--color-text-secondary);white-space:nowrap}.ingredient-row__suggestion-chip[data-v-de0b7f77]{padding:2px 8px;border:1px solid var(--color-mint-alpha-25);border-radius:var(--radius-xs);background:var(--color-mint-alpha-10);color:var(--color-mint-dark);font-size:var(--font-xs);font-weight:600;cursor:pointer;transition:background var(--transition-fast)}@media(hover:hover){.ingredient-row__suggestion-chip[data-v-de0b7f77]:hover{background:var(--color-mint-alpha-25)}}.ingredient-amount[data-v-de0b7f77]{display:flex;flex-direction:column;gap:8px;padding:12px;border:1.5px solid var(--color-border);border-radius:var(--radius-xs);background:var(--color-empty)}.ingredient-amount__header[data-v-de0b7f77]{display:flex;align-items:center;gap:8px}.ingredient-amount__mode-badge[data-v-de0b7f77]{flex-shrink:0;padding:2px 8px;border-radius:var(--radius-xs);font-size:var(--font-xs);font-weight:600}.ingredient-amount__mode-badge--new[data-v-de0b7f77]{background:var(--color-mint-alpha-10);color:var(--color-mint-dark)}.ingredient-amount__mode-badge--found[data-v-de0b7f77]{background:var(--color-info-bg);color:var(--color-info)}.ingredient-amount__name[data-v-de0b7f77]{font-size:var(--font-sm);font-weight:600;color:var(--color-text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ingredient-amount__link-btn[data-v-de0b7f77]{align-self:flex-start;padding:6px 12px;border:1.5px solid var(--color-mint-alpha-25);border-radius:var(--radius-xs);background:var(--color-mint-alpha-10);color:var(--color-mint-dark);font-size:var(--font-xs);font-weight:600;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}@media(hover:hover){.ingredient-amount__link-btn[data-v-de0b7f77]:hover{background:var(--color-mint-alpha-25);border-color:var(--color-mint)}}.ingredient-amount__cancel-link[data-v-de0b7f77]{border:none;background:transparent;color:var(--color-text-secondary);font-size:var(--font-xs);font-weight:600;cursor:pointer;padding:2px 0}@media(hover:hover){.ingredient-amount__cancel-link[data-v-de0b7f77]:hover{color:var(--color-text)}}.ingredient-amount__row[data-v-de0b7f77]{display:flex;align-items:center;gap:8px}.ingredient-amount__select[data-v-de0b7f77]{width:min(160px,100%)}.ingredient-amount__unit[data-v-de0b7f77]{color:var(--color-text-secondary);font-size:var(--font-sm);white-space:nowrap}.ingredient-amount__taste-hint[data-v-de0b7f77]{margin:0;color:var(--color-text-secondary);font-size:var(--font-sm);font-style:italic}.ingredient-amount__hint[data-v-de0b7f77]{margin:0;color:var(--color-text-secondary);font-size:var(--font-xs)}.ingredient-amount__optional[data-v-de0b7f77]{display:flex;align-items:center;gap:8px;color:var(--color-text-secondary);font-size:var(--font-sm)}.ingredient-amount__actions[data-v-de0b7f77]{display:flex;gap:8px}.ingredient-amount__inline-replace[data-v-de0b7f77]{display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-xs);background:var(--color-surface)}.ingredient-amount__replace-label[data-v-de0b7f77]{font-size:var(--font-xs);font-weight:600;color:var(--color-text-secondary)}.ingredient-search[data-v-de0b7f77]{display:flex;flex-direction:column;gap:8px;padding-top:4px}.ingredient-search__list[data-v-de0b7f77]{max-height:160px;overflow-y:auto;list-style:none;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.ingredient-search__option[data-v-de0b7f77]{gap:8px;padding:9px 10px}.ingredient-search__unit[data-v-de0b7f77],.ingredient-search__status[data-v-de0b7f77]{color:var(--color-text-secondary);font-size:var(--font-xs)}.ingredient-search__status[data-v-de0b7f77]{padding:4px 0}.btn[data-v-de0b7f77]{padding:8px 16px;border:none;border-radius:var(--radius-xs);font-size:var(--font-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.btn--sm[data-v-de0b7f77]{background:var(--color-mint);color:var(--on-primary)}@media(hover:hover){.btn--sm[data-v-de0b7f77]:hover{background:var(--color-mint-hover)}}.btn--ghost[data-v-de0b7f77]{background:transparent;color:var(--color-text-secondary)}@media(hover:hover){.btn--ghost[data-v-de0b7f77]:hover{background:var(--color-empty)}}.dish-search__create[data-v-de0b7f77]{align-self:flex-start;padding:var(--btn-padding-sm);border:1.5px dashed var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:var(--font-sm);font-weight:500;transition:background var(--transition-fast),border-color var(--transition-fast)}@media(hover:hover){.dish-search__create[data-v-de0b7f77]:hover{background:var(--color-empty);border-color:var(--color-mint);color:var(--color-mint-dark)}}.ingredient-add__toggle[data-v-de0b7f77]{align-self:flex-start;padding:var(--btn-padding-sm);border:1.5px dashed var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:var(--font-sm);font-weight:500;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}@media(hover:hover){.ingredient-add__toggle[data-v-de0b7f77]:hover{background:var(--color-empty);border-color:var(--color-mint);color:var(--color-mint-dark)}}.detail__btn[data-v-de0b7f77]:disabled{opacity:.6;cursor:default}.date-input[data-v-7d59a96f]{position:relative}.date-input__text[data-v-7d59a96f]{width:100%;box-sizing:border-box;padding:10px 36px 10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-md);font-family:inherit;background:var(--color-surface);color:var(--color-text);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.date-input__text[data-v-7d59a96f]:focus{border-color:var(--color-mint);box-shadow:0 0 0 3px var(--color-mint-alpha-10)}.date-input__btn[data-v-7d59a96f]{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;background:none;cursor:pointer;color:var(--color-text-secondary);overflow:hidden}.date-input__btn svg[data-v-7d59a96f]{width:22px;height:22px;pointer-events:none}.date-input__picker[data-v-7d59a96f]{position:absolute;inset:0;width:100%;height:100%;opacity:0;border:none;padding:0;cursor:pointer}.multi-day-picker__chips[data-v-73cb148d]{display:flex;flex-wrap:wrap;gap:8px}.multi-day-picker__chip[data-v-73cb148d]{padding:0;border:none;background:none;cursor:pointer;transition:transform var(--transition-fast)}@media(hover:hover){.multi-day-picker__chip[data-v-73cb148d]:hover:not(:disabled){transform:scale(1.05)}}.clone-confirm__text[data-v-b8a14015]{font-size:var(--font-sm);color:var(--color-text);line-height:1.5;margin:0}.clone-confirm__actions[data-v-b8a14015]{display:flex;flex-direction:column;gap:8px}.form__cancel[data-v-b8a14015]{width:100%;padding:12px;border:none;border-radius:var(--radius-sm);font-size:var(--font-base);font-weight:600;background:var(--color-empty);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast)}@media(hover:hover){.form__cancel[data-v-b8a14015]:hover{background:var(--color-border)}}.clone-confirm__text[data-v-f630fa34]{font-size:var(--font-sm);color:var(--color-text);line-height:1.5;margin:0}.clone-confirm__actions[data-v-f630fa34]{display:flex;flex-direction:column;gap:8px}.form__cancel[data-v-f630fa34]{width:100%;padding:12px;border:none;border-radius:var(--radius-sm);font-size:var(--font-base);font-weight:600;background:var(--color-empty);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast)}@media(hover:hover){.form__cancel[data-v-f630fa34]:hover{background:var(--color-border)}}.form__hint[data-v-f630fa34]{margin:4px 0 0;font-size:var(--font-sm);color:var(--color-text-secondary);line-height:1.4}.detail__row[data-v-e3d22e12]{display:flex;justify-content:space-between;align-items:center;gap:8px}.detail__row--col[data-v-e3d22e12]{flex-direction:column;align-items:flex-start}.detail__eat-dates[data-v-e3d22e12]{display:flex;flex-wrap:wrap;gap:8px}.detail__eat-date[data-v-e3d22e12]{font-size:var(--font-sm);font-weight:400;color:var(--color-text-secondary)}.detail__link[data-v-e3d22e12]{border:none;background:none;font-size:var(--font-sm);font-weight:600;color:var(--color-mint-dark);cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px;transition:color var(--transition-fast),text-decoration-thickness var(--transition-fast)}@media(hover:hover){.detail__link[data-v-e3d22e12]:hover{color:var(--color-text);text-decoration-thickness:2px}}.detail__value[data-v-e3d22e12]{font-size:var(--font-base);font-weight:500;color:var(--color-text)}.detail__value--muted[data-v-e3d22e12]{color:var(--color-text-secondary);font-weight:400;font-size:var(--font-sm)}.confirm__dates[data-v-60312e73]{display:flex;gap:12px;margin-bottom:12px}.confirm__date-field[data-v-60312e73]{flex:1;display:flex;flex-direction:column;gap:4px}.confirm__label[data-v-60312e73]{font-size:var(--font-sm);font-weight:500;color:var(--color-text-secondary)}.confirm__name[data-v-60312e73]{display:flex;flex-direction:column;gap:4px}.confirm__name-label[data-v-60312e73]{font-size:var(--font-sm);font-weight:500;color:var(--color-text-secondary)}.confirm__name-input[data-v-60312e73]{width:100%;box-sizing:border-box;padding:10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-md);font-family:inherit;background:var(--color-surface);color:var(--color-text);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.confirm__name-input[data-v-60312e73]:focus{border-color:var(--color-mint);box-shadow:0 0 0 3px var(--color-mint-alpha-10)}.confirm__message[data-v-60312e73]{margin:0;font-size:var(--font-body);color:var(--color-text);line-height:1.5}.confirm__empty[data-v-60312e73]{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:8px 0}.confirm__empty-icon[data-v-60312e73]{color:var(--color-text-secondary);width:32px;height:32px}.confirm__actions[data-v-60312e73]{display:flex;gap:8px}.confirm__btn[data-v-60312e73]{flex:1;padding:var(--btn-padding-md);border:none;border-radius:var(--radius-sm);font-size:var(--font-sm);font-weight:600;cursor:pointer;transition:opacity var(--transition-fast);display:flex;align-items:center;justify-content:center}.confirm__btn[data-v-60312e73]:disabled{opacity:.6;cursor:default}.confirm__btn--cancel[data-v-60312e73]{background:var(--color-empty);color:var(--color-text-secondary)}.confirm__btn--create[data-v-60312e73]{background:var(--color-mint);color:var(--on-primary)}.toast-region[data-v-6f25c8a9]{position:fixed;bottom:calc(var(--nav-height) + 20px);left:50%;transform:translate(-50%);z-index:var(--z-toast);max-width:calc(100vw - 32px);pointer-events:none}.toast[data-v-6f25c8a9]{padding:12px 20px;background:var(--color-text);color:var(--color-surface);border-radius:var(--radius-sm);font-size:var(--font-sm);box-shadow:var(--shadow-elevated);cursor:pointer;text-align:center;pointer-events:auto}.toast-enter-active[data-v-6f25c8a9],.toast-leave-active[data-v-6f25c8a9]{transition:opacity .25s ease,transform .25s ease}.toast-enter-from[data-v-6f25c8a9],.toast-leave-to[data-v-6f25c8a9]{opacity:0;transform:translateY(12px)}.planner[data-v-c3a0ce05]{padding:var(--page-padding-top) 16px 16px;position:relative}@media(min-width:600px){.planner[data-v-c3a0ce05]{padding:var(--page-padding-top-lg) 24px 24px}}.planner__grid-wrap[data-v-c3a0ce05]{position:relative}.planner__grid-wrap--loading[data-v-c3a0ce05]{opacity:.75;transition:opacity var(--transition-normal);pointer-events:none}.planner__error[data-v-c3a0ce05]{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 16px;background:var(--color-danger-pale);border:1px solid var(--color-danger-soft);border-radius:var(--radius-sm);font-size:var(--font-body);color:var(--color-danger-dark)}.planner__error-retry[data-v-c3a0ce05]{padding:var(--btn-padding-sm);border:none;border-radius:var(--radius-sm);background:var(--color-danger);color:var(--on-primary);font-size:var(--font-sm);font-weight:600}.home-fallback[data-v-139d6d8a]{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px 40px;background:var(--color-bg)}.home-fallback__card[data-v-139d6d8a]{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;flex:1;justify-content:center}.home-fallback__logo[data-v-139d6d8a]{width:64px;height:56px}.home-fallback__title[data-v-139d6d8a]{font-size:var(--font-display);font-weight:700;color:var(--color-text);margin:0}.home-fallback__subtitle[data-v-139d6d8a]{font-size:var(--font-body);color:var(--color-text-secondary);margin:0;max-width:280px;line-height:1.5}.home-fallback__button[data-v-139d6d8a]{margin-top:4px;border:none;padding:12px 24px;background:var(--color-mint);color:var(--on-primary);font-size:var(--font-body);font-weight:600;border-radius:var(--radius-md);transition:background var(--transition-fast)}@media(hover:hover){.home-fallback__button[data-v-139d6d8a]:hover{background:var(--color-mint-hover)}}.home-fallback__footer[data-v-139d6d8a]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}.home-fallback__footer-sep[data-v-139d6d8a]{color:var(--color-text-secondary);font-size:.85rem}.home-fallback__legal-link[data-v-139d6d8a]{font-size:.8rem;color:var(--color-text-secondary);text-decoration:underline;text-underline-offset:2px}@media(hover:hover){.home-fallback__legal-link[data-v-139d6d8a]:hover{color:var(--color-text)}}.shopping-card[data-v-0815828f]{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:left;cursor:pointer;transition:background var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);-webkit-tap-highlight-color:transparent}@media(hover:hover){.shopping-card[data-v-0815828f]:hover{box-shadow:var(--shadow-card);border-color:var(--color-mint-alpha-10)}}.shopping-card[data-v-0815828f]:active{transform:scale(var(--press-scale-sm))}.shopping-card__main[data-v-0815828f]{display:flex;flex-direction:column;gap:3px;min-width:0}.shopping-card__name[data-v-0815828f]{font-size:var(--font-base);font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shopping-card__dates[data-v-0815828f]{font-size:var(--font-xs);color:var(--color-text-secondary)}.shopping-card__chevron[data-v-0815828f]{flex-shrink:0;color:var(--color-text-secondary);opacity:.5}.sort-button[data-v-834f5cfc]{display:flex;align-items:center;gap:4px;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:5px 10px;font-size:var(--font-xs);color:var(--color-text-secondary);cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast);-webkit-tap-highlight-color:transparent}.sort-button[data-v-834f5cfc]:active{color:var(--color-mint-dark);border-color:var(--color-mint)}.fab[data-v-51ca4d8e]{position:fixed;bottom:calc(var(--nav-height) + 10px);right:max(16px,(100vw - 480px) / 2 + 16px);width:56px;height:56px;border:none;border-radius:50%;background:var(--color-mint);color:var(--on-primary);box-shadow:var(--shadow-elevated);display:flex;align-items:center;justify-content:center;z-index:var(--z-fab);transition:background var(--transition-fast),transform var(--transition-fast);-webkit-tap-highlight-color:transparent}@media(hover:hover){.fab[data-v-51ca4d8e]:hover{background:var(--color-mint-hover)}}.fab[data-v-51ca4d8e]:active{transform:scale(var(--press-scale-lg))}.shopping-page[data-v-e0ad3a55]{padding:var(--page-padding-top) 16px 72px}@media(min-width:600px){.shopping-page[data-v-e0ad3a55]{padding:var(--page-padding-top-lg) 24px 72px}}.shopping-header[data-v-e0ad3a55]{display:flex;align-items:center;justify-content:space-between}.shopping-header__title[data-v-e0ad3a55]{font-size:var(--font-lg);font-weight:700;color:var(--color-text);margin:0}.shopping-loading[data-v-e0ad3a55]{display:flex;align-items:center;justify-content:center;padding:40px 0}.shopping-list[data-v-e0ad3a55]{display:flex;flex-direction:column;gap:8px}.item-row[data-v-8b6b3825]{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;transition:opacity var(--transition-normal);-webkit-tap-highlight-color:transparent}.item-row--checked[data-v-8b6b3825]{opacity:.5}.item-row--checked .item-row__name[data-v-8b6b3825]{text-decoration:line-through;color:var(--color-text-secondary)}.item-row__check[data-v-8b6b3825]{flex-shrink:0;width:32px;height:32px;border-radius:50%;border:1.8px solid var(--color-border-strong);background:transparent;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast);-webkit-tap-highlight-color:transparent}.item-row__check--on[data-v-8b6b3825]{border-color:var(--color-success);background:var(--color-success);color:var(--on-primary)}.item-row__check[data-v-8b6b3825]:disabled{opacity:.5;cursor:default;pointer-events:none}.item-row__info[data-v-8b6b3825]{flex:1 1 6rem;min-width:0;display:flex;flex-direction:column;gap:1px}.item-row__name-row[data-v-8b6b3825]{display:flex;align-items:center;gap:5px;min-width:0}.item-row__name[data-v-8b6b3825]{font-size:var(--font-base);font-weight:500;color:var(--color-text);word-break:break-word;overflow-wrap:break-word}.item-row__manual-badge[data-v-8b6b3825]{flex-shrink:0;font-size:var(--font-sm);line-height:1}.item-row__taste[data-v-8b6b3825]{font-size:var(--font-xs);color:var(--color-text-secondary);font-style:italic}.item-row__controls[data-v-8b6b3825]{flex-shrink:0;margin-left:auto;display:flex;align-items:center;gap:8px}.item-row__stepper[data-v-8b6b3825]{display:flex;align-items:center;height:34px;border:1.5px solid var(--color-border);border-radius:var(--radius-pill);overflow:hidden;background:var(--color-surface);transition:border-color var(--transition-fast)}.item-row__stepper[data-v-8b6b3825]:has(:focus-visible){border-color:var(--color-mint)}.item-row__step-btn[data-v-8b6b3825]{min-width:40px;height:100%;border:none;background:transparent;font-size:var(--font-lg);font-weight:400;color:var(--color-text);display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent;outline-offset:-2px;transition:background var(--transition-fast)}.item-row__step-btn[data-v-8b6b3825]:active{background:var(--color-empty)}.item-row__step-btn[data-v-8b6b3825]:disabled{color:var(--color-border);cursor:default}.item-row__step-center[data-v-8b6b3825]{min-width:56px;height:100%;border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;padding:0 4px;cursor:text}.item-row__step-center--button[data-v-8b6b3825]{border-top:0;border-bottom:0;background:none;font:inherit;color:inherit;outline-offset:-2px}.item-row__step-label[data-v-8b6b3825]{font-size:var(--font-2xs);font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-text);white-space:nowrap;text-align:center;-webkit-user-select:none;user-select:none}.item-row__step-input[data-v-8b6b3825]{flex:1;width:0;min-width:0;border:none;outline:none;background:transparent;font-size:var(--font-2xs);font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-text);text-align:center;font-family:inherit;padding:0;caret-color:var(--color-mint)}.item-row__amount-done[data-v-8b6b3825]{font-size:var(--font-2xs);font-variant-numeric:tabular-nums;color:var(--color-text-secondary);white-space:nowrap}.item-row__delete[data-v-8b6b3825]{width:26px;height:26px;border:none;background:transparent;color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:50%;transition:background var(--transition-fast),color var(--transition-fast);-webkit-tap-highlight-color:transparent}@media(hover:hover){.item-row__delete[data-v-8b6b3825]:hover{color:var(--color-danger);background:var(--color-danger-pale)}}.item-row__delete[data-v-8b6b3825]:active{color:var(--color-danger);background:var(--color-danger-pale)}.add-item-form[data-v-bde3cf2a]{display:flex;flex-direction:column;gap:12px}.add-item-form__status[data-v-bde3cf2a]{display:flex;justify-content:center;padding:12px 0;color:var(--color-text-secondary);font-size:var(--font-sm)}.add-item-form__create[data-v-bde3cf2a]{align-self:flex-start;padding:var(--btn-padding-sm);border:1.5px dashed var(--color-border);border-radius:var(--radius-sm);background:transparent;font-size:var(--font-sm);font-weight:500;color:var(--color-text-secondary);transition:background var(--transition-fast),border-color var(--transition-fast)}@media(hover:hover){.add-item-form__create[data-v-bde3cf2a]:hover{background:var(--color-empty);border-color:var(--color-mint);color:var(--color-mint-dark)}}.amount-step[data-v-bde3cf2a]{display:flex;flex-direction:column;gap:14px}.amount-step__taste-hint[data-v-bde3cf2a]{font-size:var(--font-sm);color:var(--color-text-secondary);padding:4px 0 8px}.amount-step__header[data-v-bde3cf2a]{display:flex;align-items:center;justify-content:space-between;gap:8px}.amount-step__name[data-v-bde3cf2a]{font-size:var(--font-md);font-weight:600;color:var(--color-text)}.amount-step__change[data-v-bde3cf2a]{background:none;border:none;color:var(--color-mint-dark);font-size:var(--font-sm);font-weight:500;cursor:pointer;padding:2px 0}.amount-step__row[data-v-bde3cf2a]{display:flex;align-items:center;gap:8px}.amount-step__input[data-v-bde3cf2a]{flex:1}.amount-step__unit[data-v-bde3cf2a]{font-size:var(--font-sm);color:var(--color-text-secondary);font-weight:500;white-space:nowrap}.amount-step__confirm[data-v-bde3cf2a]{display:flex;flex-direction:column;gap:16px}.amount-step__confirm-text[data-v-bde3cf2a]{font-size:var(--font-sm);color:var(--color-text);line-height:1.5;margin:0}.amount-step__confirm-actions[data-v-bde3cf2a]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.amount-step__confirm-cancel[data-v-bde3cf2a]{padding:12px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text);font-size:var(--font-base);font-weight:600;width:100%;transition:background var(--transition-fast)}@media(hover:hover){.amount-step__confirm-cancel[data-v-bde3cf2a]:hover{background:var(--color-empty)}}.form__field[data-v-bde3cf2a]{display:flex;flex-direction:column;gap:4px}.form__label[data-v-bde3cf2a]{font-size:var(--font-sm);font-weight:600;color:var(--color-text)}.form__input[data-v-bde3cf2a]{padding:10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-md);font-family:inherit;background:var(--color-surface);color:var(--color-text);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form__input[data-v-bde3cf2a]:focus{border-color:var(--color-mint);box-shadow:0 0 0 3px var(--color-mint-alpha-10)}.form__error[data-v-bde3cf2a]{font-size:var(--font-sm);color:var(--color-danger-dark);padding:4px 0}.form__submit[data-v-bde3cf2a]{padding:12px;border:none;border-radius:var(--radius-sm);background:var(--color-mint);color:var(--on-primary);font-size:var(--font-base);font-weight:600;transition:background var(--transition-fast);width:100%}@media(hover:hover){.form__submit[data-v-bde3cf2a]:hover:not(:disabled){background:var(--color-mint-hover)}}.form__submit[data-v-bde3cf2a]:disabled{opacity:.5;pointer-events:none}.detail-page[data-v-a5f252ad]{padding:var(--page-padding-top) 16px 72px}@media(min-width:600px){.detail-page[data-v-a5f252ad]{padding:var(--page-padding-top-lg) 24px 72px}}.detail-header[data-v-a5f252ad]{display:flex;align-items:center;gap:8px}.detail-header__back[data-v-a5f252ad]{flex-shrink:0;width:36px;height:36px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--transition-fast);-webkit-tap-highlight-color:transparent}.detail-header__back[data-v-a5f252ad]:active{background:var(--color-empty)}.detail-header__info[data-v-a5f252ad]{flex:1;min-width:0}.detail-header__title[data-v-a5f252ad]{font-size:var(--font-lg);font-weight:700;color:var(--color-text);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-header__dates[data-v-a5f252ad]{font-size:var(--font-xs);color:var(--color-text-secondary)}.detail-header__actions[data-v-a5f252ad]{display:flex;gap:4px;flex-shrink:0}.detail-header__btn[data-v-a5f252ad]{width:36px;height:36px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);-webkit-tap-highlight-color:transparent}.detail-header__btn[data-v-a5f252ad]:active{background:var(--color-empty)}.detail-header__btn--danger[data-v-a5f252ad]{color:var(--color-danger)}.detail-filters[data-v-a5f252ad]{display:flex;flex-direction:column;gap:8px}.detail-loading[data-v-a5f252ad]{display:flex;align-items:center;justify-content:center;padding:40px 0}.detail-groups[data-v-a5f252ad]{display:flex;flex-direction:column;gap:16px}.detail-group[data-v-a5f252ad]{display:flex;flex-direction:column;gap:2px}.detail-group__header[data-v-a5f252ad]{font-size:var(--font-sm);font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.3px;padding:6px 12px 4px}.detail-group__items[data-v-a5f252ad]{background:var(--color-surface);border-radius:var(--radius-sm);border:1px solid var(--color-border);overflow:hidden}.detail-group__items[data-v-a5f252ad]>.item-row+.item-row{border-top:1px solid var(--color-border)}.confirm-overlay[data-v-a5f252ad]{position:fixed;inset:0;background:var(--overlay-bg);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:var(--sheet-inset-top) 16px calc(16px + var(--safe-area-bottom));z-index:var(--z-confirm)}.confirm-panel[data-v-a5f252ad]{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-elevated);padding:24px 20px 20px;width:100%;max-width:340px}.confirm-panel__title[data-v-a5f252ad]{font-size:var(--font-lg);font-weight:700;color:var(--color-text);margin:0 0 8px}.confirm-panel__text[data-v-a5f252ad]{font-size:var(--font-sm);color:var(--color-text-secondary);margin:0 0 20px;line-height:1.5}.confirm-panel__actions[data-v-a5f252ad]{display:flex;gap:8px;justify-content:flex-end}.confirm-panel__btn[data-v-a5f252ad]{padding:var(--btn-padding-md);border:none;border-radius:var(--radius-sm);font-size:var(--font-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.confirm-panel__btn[data-v-a5f252ad]:disabled{opacity:.5;pointer-events:none}.confirm-panel__btn--cancel[data-v-a5f252ad]{background:var(--color-empty);color:var(--color-text)}@media(hover:hover){.confirm-panel__btn--cancel[data-v-a5f252ad]:hover{background:var(--color-border)}}.confirm-panel__btn--primary[data-v-a5f252ad]{background:var(--color-mint);color:var(--on-primary)}@media(hover:hover){.confirm-panel__btn--primary[data-v-a5f252ad]:hover{background:var(--color-mint-hover)}}.confirm-panel__btn--danger[data-v-a5f252ad]{background:var(--color-danger);color:var(--on-primary)}@media(hover:hover){.confirm-panel__btn--danger[data-v-a5f252ad]:hover{background:var(--color-danger-dark)}}.modal-enter-active[data-v-a5f252ad],.modal-leave-active[data-v-a5f252ad]{transition:opacity .2s ease}.modal-enter-from[data-v-a5f252ad],.modal-leave-to[data-v-a5f252ad]{opacity:0}.ingredient-card[data-v-d43a7de1]{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:12px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:left;cursor:pointer;transition:box-shadow var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);-webkit-tap-highlight-color:transparent}@media(hover:hover){.ingredient-card[data-v-d43a7de1]:hover{box-shadow:var(--shadow-card);border-color:var(--color-mint-alpha-10)}}.ingredient-card[data-v-d43a7de1]:active{transform:scale(var(--press-scale-sm))}.ingredient-card__main[data-v-d43a7de1]{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}.ingredient-card__name[data-v-d43a7de1]{max-width:100%;font-size:var(--font-md);font-weight:700;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ingredient-card__category[data-v-d43a7de1]{font-size:var(--font-sm);color:var(--color-text-secondary)}.ingredient-card__unit[data-v-d43a7de1]{flex-shrink:0;font-size:var(--font-sm);color:var(--color-text-secondary)}.usage[data-v-ca40d38c]{display:flex;flex-direction:column;gap:16px}.usage__text[data-v-ca40d38c]{margin:0;font-size:var(--font-sm);color:var(--color-text-secondary);line-height:1.45}.usage__group[data-v-ca40d38c]{display:flex;flex-direction:column;gap:6px}.usage__list[data-v-ca40d38c]{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.usage__item[data-v-ca40d38c]{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-sm);font-size:var(--font-sm);color:var(--color-text);text-align:left;transition:background var(--transition-fast),transform var(--transition-fast);-webkit-tap-highlight-color:transparent}@media(hover:hover){.usage__item[data-v-ca40d38c]:hover{background:var(--color-empty)}}.usage__item[data-v-ca40d38c]:active{transform:scale(var(--press-scale-sm))}.usage__item svg[data-v-ca40d38c]{flex-shrink:0;margin-left:auto;color:var(--color-text-secondary)}.usage__name[data-v-ca40d38c]{min-width:0}.usage__period[data-v-ca40d38c]{flex-shrink:0;font-size:var(--font-xs);color:var(--color-text-secondary)}.usage__more[data-v-ca40d38c]{font-size:var(--font-xs);color:var(--color-text-secondary)}.list-loading[data-v-bc04cccf]{display:flex;flex-direction:column;align-items:center;gap:10px;padding:40px 0;font-size:var(--font-sm);color:var(--color-text-secondary)}.list-retry[data-v-bc04cccf]{padding:var(--btn-padding-sm);border:1px solid var(--color-mint);border-radius:var(--radius-sm);background:none;color:var(--color-mint-dark);font-size:var(--font-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.list-retry[data-v-bc04cccf]:active{background:var(--color-mint-alpha-08)}.list-error[data-v-bc04cccf]{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 0;text-align:center}.list-error__text[data-v-bc04cccf]{font-size:var(--font-sm);color:var(--color-text-secondary);margin:0}.list-refreshing[data-v-bc04cccf]{display:flex;justify-content:center;padding:4px 0}.list-load-more-error[data-v-bc04cccf]{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 0}.list-load-more-error__text[data-v-bc04cccf]{font-size:var(--font-xs);color:var(--color-text-secondary)}.list[data-v-bc04cccf]{display:flex;flex-direction:column;gap:8px}.list-sentinel[data-v-bc04cccf]{display:flex;justify-content:center;padding:12px 0;min-height:1px}.ingredients-view[data-v-bc04cccf]{display:contents}.dish-card[data-v-c25488d9]{display:flex;flex-direction:column;align-items:flex-start;gap:6px;width:100%;padding:16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:left;cursor:pointer;transition:background var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);-webkit-tap-highlight-color:transparent}@media(hover:hover){.dish-card[data-v-c25488d9]:hover{box-shadow:var(--shadow-card);border-color:var(--color-mint-alpha-10)}}.dish-card[data-v-c25488d9]:active{transform:scale(var(--press-scale-sm))}.dish-card__name[data-v-c25488d9]{width:100%;font-size:var(--font-md);font-weight:700;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dish-card__category[data-v-c25488d9]{font-size:var(--font-sm);color:var(--color-text-secondary)}.dish-card__ingredients[data-v-c25488d9]{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px}.dish-card__ingredient-chip[data-v-c25488d9]{padding:5px 12px;border-radius:var(--radius-lg);background:var(--color-mint-alpha-10);font-size:var(--font-xs);font-weight:500;color:var(--color-text)}.dish-card__ingredients-more[data-v-c25488d9]{font-size:var(--font-xs);font-weight:500;color:var(--color-text-secondary)}.detail{display:flex;flex-direction:column;gap:16px}.detail__section{display:flex;flex-direction:column;gap:12px}.detail__section+.detail__section{padding-top:16px;border-top:1px solid var(--color-border)}.detail__dish-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.detail__dish-title-row{display:flex;flex-direction:column;gap:4px;min-width:0}.detail__dish-name{font-size:var(--font-lg);font-weight:700;color:var(--color-text);margin:0}.detail__dish-edit{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--color-text-secondary);border-radius:var(--radius-xs);flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast)}@media(hover:hover){.detail__dish-edit:hover{background:var(--color-empty);color:var(--color-mint-dark)}}.detail__meta{font-size:var(--font-sm);color:var(--color-text-secondary);margin:0}.detail__recipe{font-size:var(--font-base);color:var(--color-text);line-height:1.5;margin:0;white-space:pre-line}.detail__label{font-size:var(--font-sm);font-weight:600;color:var(--color-text-secondary)}.detail__ingredients{list-style:none;display:flex;flex-direction:column;gap:4px}.detail__ingredients li:last-child{border-bottom:none}.detail__ingredient{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--color-border);font-size:var(--font-sm)}.detail__ingredient-name{font-weight:500;color:var(--color-text)}.detail__ingredient-amount{font-size:var(--font-sm);font-variant-numeric:tabular-nums;color:var(--color-text-secondary);white-space:nowrap}.detail__ingredient-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.detail__ingredient-optional{font-size:var(--font-xs);color:var(--color-mint-dark);background:var(--color-mint-alpha-12);border-radius:var(--radius-xs);padding:1px 5px;font-weight:500;white-space:nowrap;flex-shrink:0}.detail__actions{display:flex;flex-direction:column;gap:8px}.detail__actions-row{display:flex;gap:8px}.detail__actions-row .detail__btn{flex:1;min-width:0}.detail__btn{width:100%;padding:12px;border:none;border-radius:var(--radius-sm);font-size:var(--font-base);font-weight:600;transition:background var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast)}.detail__btn--primary{background:var(--color-mint);color:var(--on-primary)}@media(hover:hover){.detail__btn--primary:hover{background:var(--color-mint-hover)}}.detail__btn--primary:active{transform:scale(var(--press-scale-md))}.detail__btn--secondary{background:var(--color-mint-alpha-12);color:var(--color-mint-dark)}@media(hover:hover){.detail__btn--secondary:hover{background:var(--color-mint-alpha-16)}}.detail__btn--secondary:active{transform:scale(var(--press-scale-md))}.detail__btn--delete{background:var(--color-danger-pale);color:var(--color-danger-dark)}@media(hover:hover){.detail__btn--delete:hover{background:var(--color-danger-bg)}}.detail__btn--delete:active{transform:scale(var(--press-scale-md))}.detail__btn--cancel{background:var(--color-empty);color:var(--color-text-secondary)}@media(hover:hover){.detail__btn--cancel:hover{background:var(--color-border)}}.detail__confirm-text{font-size:var(--font-base);font-weight:600;color:var(--color-danger-dark);margin:0}.detail__confirm-actions{display:flex;gap:8px}.detail__confirm-actions .detail__btn{flex:1}.detail__clone-text{font-size:var(--font-sm);color:var(--color-text);line-height:1.5;margin:0}.detail__loading[data-v-5c8254ff]{text-align:center;font-size:var(--font-sm);color:var(--color-text-secondary);padding:12px 0}.list-loading[data-v-64c3426d]{display:flex;flex-direction:column;align-items:center;gap:10px;padding:40px 0;font-size:var(--font-sm);color:var(--color-text-secondary)}.list-retry[data-v-64c3426d]{padding:var(--btn-padding-sm);border:1px solid var(--color-mint);border-radius:var(--radius-sm);background:none;color:var(--color-mint-dark);font-size:var(--font-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.list-retry[data-v-64c3426d]:active{background:var(--color-mint-alpha-08)}.list-error[data-v-64c3426d]{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 0;text-align:center}.list-error__text[data-v-64c3426d]{font-size:var(--font-sm);color:var(--color-text-secondary);margin:0}.list-refreshing[data-v-64c3426d]{display:flex;justify-content:center;padding:4px 0}.list-load-more-error[data-v-64c3426d]{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 0}.list-load-more-error__text[data-v-64c3426d]{font-size:var(--font-xs);color:var(--color-text-secondary)}.list[data-v-64c3426d]{display:flex;flex-direction:column;gap:8px}.list-sentinel[data-v-64c3426d]{display:flex;justify-content:center;padding:12px 0;min-height:1px}.recipes-page[data-v-64c3426d]{padding:var(--page-padding-top) 16px 72px}@media(min-width:600px){.recipes-page[data-v-64c3426d]{padding:var(--page-padding-top-lg) 24px 72px}}.recipes-header[data-v-64c3426d]{display:flex;align-items:center;justify-content:space-between}.recipes-header__title[data-v-64c3426d]{font-size:var(--font-lg);font-weight:700;color:var(--color-text);margin:0}.sort-dropdown-overlay[data-v-64c3426d]{position:fixed;inset:0;z-index:10}.sort-dropdown[data-v-64c3426d]{position:relative;z-index:11;display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.sort-dropdown__item[data-v-64c3426d]{padding:10px 14px;border:none;background:none;text-align:left;font-size:var(--font-sm);color:var(--color-text);cursor:pointer;transition:background var(--transition-fast);-webkit-tap-highlight-color:transparent;outline-offset:-2px}.sort-dropdown__item[data-v-64c3426d]:active{background:var(--color-empty)}.sort-dropdown__item--active[data-v-64c3426d]{color:var(--color-mint-dark);font-weight:600;background:var(--color-mint-alpha-08)}.sort-dropdown__item+.sort-dropdown__item[data-v-64c3426d]{border-top:1px solid var(--color-border)}.recipes-chips[data-v-64c3426d]{display:flex;flex-wrap:wrap;gap:6px}.recipes-chip[data-v-64c3426d]{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-empty);font-size:var(--font-xs);font-weight:500;color:var(--color-text);cursor:pointer;transition:background var(--transition-fast)}@media(hover:hover){.recipes-chip[data-v-64c3426d]:hover{background:var(--color-border)}}.recipes-chip__x[data-v-64c3426d]{font-size:14px;line-height:1;color:var(--color-text-secondary)}.ai-draft-card[data-v-64c3426d]{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);text-align:left;box-shadow:var(--shadow-card);transition:background var(--transition-fast),transform var(--transition-fast)}.ai-draft-card[data-v-64c3426d]:active{transform:scale(var(--press-scale-sm));background:var(--color-empty)}.ai-draft-card__title[data-v-64c3426d]{width:100%;font-size:var(--font-md);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-draft-card__meta[data-v-64c3426d]{display:flex;align-items:center;gap:8px;font-size:var(--font-xs);color:var(--color-text-secondary)}.ai-draft-card__status[data-v-64c3426d]{padding:2px 6px;border-radius:var(--radius-xs);background:var(--color-empty);color:var(--color-text-secondary);font-weight:600}.ai-draft-card__status--processing[data-v-64c3426d]{background:var(--color-mint-alpha-10);color:var(--color-mint-dark)}.ai-draft-card__status--parsed[data-v-64c3426d]{background:var(--color-info-bg);color:var(--color-info)}.ai-draft-card__status--failed[data-v-64c3426d]{background:var(--color-danger-pale);color:var(--color-danger)}.ai-draft-card__status--dish_created[data-v-64c3426d]{background:var(--color-success-bg);color:var(--color-success-dark)}.dropdown-enter-active[data-v-64c3426d],.dropdown-leave-active[data-v-64c3426d]{transition:opacity var(--transition-fast),transform var(--transition-fast);transform-origin:top right}.dropdown-enter-from[data-v-64c3426d],.dropdown-leave-to[data-v-64c3426d]{opacity:0;transform:scaleY(.9)}.tariff-confirm__description[data-v-b37d4ec9]{margin:0;font-size:var(--font-body);color:var(--color-text);line-height:1.6}.tariff-confirm__proration[data-v-b37d4ec9]{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;background:var(--color-warning-bg);border:1px solid var(--color-warning-border);border-radius:var(--radius-sm);font-size:var(--font-sm);color:var(--color-warning)}.tariff-confirm__proration-icon[data-v-b37d4ec9]{flex-shrink:0;width:16px;height:16px;color:var(--color-warning-icon)}.tariff-confirm__recurring-notice[data-v-b37d4ec9]{margin:0 0 12px;font-size:var(--font-xs, 12px);color:var(--color-text-secondary);line-height:1.5}.tariff-confirm__actions[data-v-b37d4ec9]{display:flex;gap:8px}.tariff-confirm__btn[data-v-b37d4ec9]{flex:1;padding:var(--btn-padding-md);border:none;border-radius:var(--radius-sm);font-size:var(--font-sm);font-weight:600;cursor:pointer;transition:opacity var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:6px}.tariff-confirm__btn[data-v-b37d4ec9]:disabled{opacity:.6;cursor:not-allowed}.tariff-confirm__btn--cancel[data-v-b37d4ec9]{background:var(--color-empty);color:var(--color-text-secondary)}@media(hover:hover){.tariff-confirm__btn--cancel[data-v-b37d4ec9]:hover:not(:disabled){opacity:.75}}.tariff-confirm__btn--confirm[data-v-b37d4ec9]{background:var(--color-mint);color:var(--on-primary)}@media(hover:hover){.tariff-confirm__btn--confirm[data-v-b37d4ec9]:hover:not(:disabled){background:var(--color-mint-hover)}}.cabinet[data-v-cb9011fc]{display:flex;flex-direction:column;gap:20px;padding:var(--page-padding-top) 16px 16px}.cabinet__header[data-v-cb9011fc]{padding:0}.cabinet__title[data-v-cb9011fc]{font-size:var(--font-lg);font-weight:600}.cabinet__user-name[data-v-cb9011fc]{margin-top:4px;font-size:var(--font-base);color:var(--color-text-secondary)}.cabinet__card[data-v-cb9011fc]{display:flex;flex-direction:column;gap:14px;padding:20px;background:linear-gradient(135deg,var(--color-mint-alpha-16) 0%,var(--color-mint-alpha-06) 100%);border:1px solid var(--color-mint-alpha-25);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.cabinet__card-header[data-v-cb9011fc]{display:flex;align-items:flex-start;gap:12px}.cabinet__card-avatar[data-v-cb9011fc]{flex-shrink:0;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:var(--color-mint);color:var(--on-primary)}.cabinet__card-header-text[data-v-cb9011fc]{display:flex;flex-direction:column;gap:4px;min-width:0}.cabinet__card-title-row[data-v-cb9011fc]{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.cabinet__card-status[data-v-cb9011fc]{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-pill);font-size:var(--font-xs);font-weight:700}.cabinet__card-status--success[data-v-cb9011fc]{background:var(--color-success-bg);color:var(--color-success-dark)}.cabinet__card-status--warning[data-v-cb9011fc]{background:var(--color-warning-bg);color:var(--color-warning)}.cabinet__card-heading[data-v-cb9011fc]{font-size:var(--font-lg);font-weight:600;color:var(--color-text)}.cabinet__card-text[data-v-cb9011fc]{font-size:var(--font-base);color:var(--color-text-secondary);line-height:1.5}.cabinet__card-usage[data-v-cb9011fc]{width:100%;border:none}.cabinet__btn[data-v-cb9011fc]{margin-top:8px;width:100%;padding:14px 24px;border:none;border-radius:var(--radius-pill);font-size:var(--font-md);font-weight:600;color:var(--on-primary);background:var(--color-mint);transition:background var(--transition-fast),transform var(--transition-fast)}.cabinet__btn[data-v-cb9011fc]:active{background:var(--color-mint-hover);transform:scale(var(--press-scale-md))}.cabinet__btn[data-v-cb9011fc]:disabled{opacity:.6;cursor:not-allowed}.cabinet__btn--tariff[data-v-cb9011fc]{margin-top:0}.cabinet__btn--tariff-secondary[data-v-cb9011fc]{color:var(--color-mint-dark);background:var(--color-mint-alpha-06);border:1.5px solid var(--color-mint-alpha-25);font-size:var(--font-sm);padding:10px 24px}.cabinet__btn--tariff-secondary[data-v-cb9011fc]:active{background:var(--color-mint-alpha-16)}.cabinet__btn--cancel[data-v-cb9011fc]{margin-top:0;width:100%;padding:12px 24px;border:1px solid var(--color-border);border-radius:var(--radius-pill);font-size:var(--font-sm);font-weight:500;color:var(--color-text-secondary);background:transparent;transition:background var(--transition-fast),color var(--transition-fast)}.cabinet__btn--cancel[data-v-cb9011fc]:active{background:var(--color-border);color:var(--color-text)}.cabinet__btn--cancel-confirm[data-v-cb9011fc]{flex:1;padding:var(--btn-padding-md);border:none;border-radius:var(--radius-sm);font-size:var(--font-sm);font-weight:600;color:var(--color-text-secondary);background:var(--color-surface-muted);transition:background var(--transition-fast)}.cabinet__btn--cancel-confirm[data-v-cb9011fc]:active{background:var(--color-border)}.cabinet__btn--cancel-dismiss[data-v-cb9011fc]{flex:1;padding:var(--btn-padding-md);border:none;border-radius:var(--radius-sm);font-size:var(--font-sm);font-weight:700;color:var(--on-primary);background:var(--color-mint);transition:background var(--transition-fast)}.cabinet__btn--cancel-dismiss[data-v-cb9011fc]:active{background:var(--color-mint-hover)}.cabinet__error[data-v-cb9011fc]{font-size:var(--font-sm);color:var(--color-danger-dark)}.cabinet__recurring-notice[data-v-cb9011fc]{margin:0;font-size:var(--font-xs, 12px);color:var(--color-text-secondary);line-height:1.5;text-align:center}.cabinet__section-title[data-v-cb9011fc]{font-size:var(--font-xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-secondary)}.cabinet__tariffs[data-v-cb9011fc]{display:flex;flex-direction:column;gap:12px}.cabinet__tariffs-header[data-v-cb9011fc]{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.cabinet__tariffs-note[data-v-cb9011fc]{font-size:var(--font-xs);color:var(--color-text-secondary)}.cabinet__tariff[data-v-cb9011fc]{padding:20px;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);border:2px solid transparent;transition:border-color var(--transition-fast)}.cabinet__tariff--current[data-v-cb9011fc]{border-color:var(--color-mint)}.cabinet__tariff--pending[data-v-cb9011fc]{border-color:var(--color-border)}.cabinet__tariff-top[data-v-cb9011fc]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:4px}.cabinet__tariff-header[data-v-cb9011fc]{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.cabinet__tariff-name[data-v-cb9011fc]{font-size:var(--font-md);font-weight:600}.cabinet__tariff-badge[data-v-cb9011fc]{display:inline-flex;align-items:center;gap:3px;font-size:var(--font-xs);font-weight:600;padding:2px 8px;border-radius:var(--radius-pill);background:var(--color-surface-muted);color:var(--color-text-secondary)}.cabinet__tariff-badge--current[data-v-cb9011fc]{background:var(--color-mint-alpha-10);color:var(--color-mint-dark)}.cabinet__tariff-badge--pending[data-v-cb9011fc]{background:var(--color-surface-muted);color:var(--color-text-secondary)}.cabinet__tariff-badge--soon[data-v-cb9011fc]{background:var(--color-warning-bg);color:var(--color-warning)}.cabinet__tariff-price[data-v-cb9011fc]{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;text-align:right}.cabinet__tariff-price-value[data-v-cb9011fc]{font-size:var(--font-lg);font-weight:700;color:var(--color-text);white-space:nowrap}.cabinet__tariff-price-period[data-v-cb9011fc]{font-size:var(--font-xs);color:var(--color-text-secondary)}.cabinet__tariff-desc[data-v-cb9011fc]{margin:0 0 8px;color:var(--color-text-secondary);font-size:var(--font-sm);line-height:1.4}.cabinet__tariff-description[data-v-cb9011fc]{display:flex;flex-direction:column;gap:6px;margin:0 0 10px;padding-left:0;list-style:none;color:var(--color-text);font-size:var(--font-sm);line-height:1.4}.cabinet__tariff-description li[data-v-cb9011fc]{display:flex;align-items:center;gap:8px}.cabinet__tariff-check[data-v-cb9011fc]{flex-shrink:0;color:var(--color-mint-dark)}.cabinet__tariff-features[data-v-cb9011fc]{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-wrap:wrap;gap:8px}.cabinet__tariff-features li[data-v-cb9011fc]{font-size:var(--font-xs);padding:2px 10px;background:var(--color-mint-alpha-10);color:var(--color-mint-dark);border-radius:var(--radius-pill);font-weight:600}.cabinet__tariff-pending-note[data-v-cb9011fc]{display:flex;flex-direction:column;gap:6px}.cabinet__tariff-pending-text[data-v-cb9011fc]{font-size:var(--font-xs);color:var(--color-text-secondary);line-height:1.4}.cabinet__payment[data-v-cb9011fc]{align-items:stretch;text-align:left;gap:12px;background:var(--color-surface);border-color:var(--color-border)}.cabinet__payment-title[data-v-cb9011fc]{margin-bottom:0}.cabinet__payment-info[data-v-cb9011fc]{display:flex;align-items:center;gap:12px;padding:12px;background:var(--color-empty);border-radius:var(--radius-sm)}.cabinet__payment-brand[data-v-cb9011fc]{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-sm);background:var(--color-text);color:var(--color-surface);font-size:var(--font-xs);font-weight:700;letter-spacing:.02em}.cabinet__payment-details[data-v-cb9011fc]{display:flex;flex-direction:column;gap:2px;min-width:0}.cabinet__payment-card[data-v-cb9011fc]{font-size:var(--font-md);font-weight:600;color:var(--color-text)}.cabinet__payment-status[data-v-cb9011fc]{font-size:var(--font-xs);color:var(--color-text-secondary)}.cabinet__payment-warning[data-v-cb9011fc]{display:flex;align-items:flex-start;gap:6px;font-size:var(--font-xs);color:var(--color-text-secondary);line-height:1.4}.cabinet__payment-warning-icon[data-v-cb9011fc]{flex-shrink:0;margin-top:1px;color:var(--color-warning-icon)}.cabinet__cancel-pending[data-v-cb9011fc]{font-size:var(--font-sm);color:var(--color-text-secondary);text-align:center}.cabinet__cancel-confirm[data-v-cb9011fc]{display:flex;flex-direction:column;gap:10px}.cabinet__cancel-text[data-v-cb9011fc]{font-size:var(--font-sm);color:var(--color-text-secondary);text-align:center}.cabinet__cancel-actions[data-v-cb9011fc]{display:flex;gap:8px}.legal-page[data-v-6fe0801b]{max-width:540px;margin:0 auto;padding:24px 16px 40px}.legal-page--wide[data-v-6fe0801b]{max-width:760px;padding:56px 20px 80px}.legal-page__header[data-v-6fe0801b]{margin-bottom:24px}.legal-page__title[data-v-6fe0801b]{margin:0;color:var(--color-text);font-size:var(--font-lg);font-weight:700}.legal-page__body[data-v-6fe0801b]{color:var(--color-text);font-size:var(--font-body);line-height:1.7}.legal-page__loading[data-v-6fe0801b]{display:flex;justify-content:center;padding:40px 0}.legal-page__error[data-v-6fe0801b]{padding:24px 0;color:var(--color-text-secondary)}.legal-page__prose[data-v-6fe0801b] h1,.legal-page__prose[data-v-6fe0801b] h2,.legal-page__prose[data-v-6fe0801b] h3{margin:1.4em 0 .4em;color:var(--color-text);font-weight:700;line-height:1.3}.legal-page__prose[data-v-6fe0801b] h1{font-size:var(--font-lg)}.legal-page__prose[data-v-6fe0801b] h2{font-size:1.05rem}.legal-page__prose[data-v-6fe0801b] h3{font-size:1rem}.legal-page__prose[data-v-6fe0801b] p{margin:0 0 .8em}.legal-page__prose[data-v-6fe0801b] ul,.legal-page__prose[data-v-6fe0801b] ol{margin:0 0 .8em;padding-left:1.4em}.legal-page__prose[data-v-6fe0801b] li{margin-bottom:.3em}.legal-page__prose[data-v-6fe0801b] strong{color:var(--color-text);font-weight:600}.legal-page__prose[data-v-6fe0801b] a{color:var(--color-mint-dark);text-decoration:underline}.legal-page__prose[data-v-6fe0801b] hr{margin:1.5em 0;border:none;border-top:1px solid var(--color-border)}
