:root{--color-bg: #ffffff;--color-surface: #FFFFFF;--color-text: #252520;--color-text-secondary: #5F5F56;--color-border: #D6DEC0;--color-empty: #F2F2EE;--color-mint: #8A63B5;--color-mint-hover: #7D56A9;--color-eat: #6F9737;--color-eat-bg: rgba(111, 151, 55, .12);--color-cook: #8AAA25;--color-cook-bg: rgba(138, 170, 37, .14);--color-eat-bg-strong: rgba(111, 151, 55, .22);--color-cook-bg-strong: rgba(138, 170, 37, .22);--color-shared: #6B7280;--color-shared-bg: rgba(107, 114, 128, .1);--color-shared-accent: #9CA3AF;--color-danger: #D64545;--color-danger-muted: #B91C1C;--color-danger-bg: #FEE2E2;--color-danger-soft: #FECACA;--color-danger-pale: #FEF2F2;--overlay-bg: rgba(30, 20, 45, .48);--on-primary: #ffffff;--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 4px 16px rgba(0, 0, 0, .1);--radius-sm: 10px;--radius-md: 16px;--radius-lg: 20px;--font-lg: 17px;--font-md: 15px;--font-sm: 13px;--font-xs: 11px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif;background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;line-height:1.4}button{font-family:inherit;cursor:pointer}*:focus-visible{outline:2px solid var(--color-mint);outline-offset:2px}.form__required{color:var(--color-danger);font-weight:400}.bottom-nav[data-v-6f748ddf]{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;align-items:center;background:var(--color-surface);border-top:1px solid var(--color-border);padding:6px 0 calc(6px + env(safe-area-inset-bottom,0px));z-index:900}.bottom-nav__tab[data-v-6f748ddf]{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 16px;text-decoration:none;color:var(--color-text-secondary);border-radius:var(--radius-sm);transition:color .15s;-webkit-tap-highlight-color:transparent}.bottom-nav__tab--active[data-v-6f748ddf]{color:var(--color-mint)}.bottom-nav__icon[data-v-6f748ddf]{display:flex;align-items:center;justify-content:center;width:24px;height:24px}.bottom-nav__label[data-v-6f748ddf]{font-size:var(--font-xs);font-weight:600;letter-spacing:.01em}.week-nav[data-v-4136bab5]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);min-height:52px}.week-nav__btn[data-v-4136bab5]{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;transition:background .15s,border-color .15s}.week-nav__btn[data-v-4136bab5]:active{background:var(--color-border)}.week-nav__btn[data-v-4136bab5]:disabled{opacity:.4;cursor:default}.week-nav__label[data-v-4136bab5]{font-size:17px;font-weight:600;letter-spacing:-.01em;text-align:center}.meal-card[data-v-2ff73915]{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:13px;text-align:left;cursor:pointer;transition:box-shadow .15s,transform .15s}.meal-card--shared[data-v-2ff73915]{border-left-color:var(--color-shared-accent)}.meal-card[data-v-2ff73915]:hover{box-shadow:var(--shadow-card);transform:translateY(-1px)}.meal-card[data-v-2ff73915]:active{transform:scale(.97);box-shadow:var(--shadow-elevated)}.meal-card--ghost[data-v-2ff73915]{opacity:.3;border:2px dashed var(--card-accent, var(--color-mint));background:var(--card-bg, var(--color-empty))}.meal-card--chosen[data-v-2ff73915]{box-shadow:var(--shadow-elevated);transform:scale(1.02);cursor:grabbing}.meal-card--drag[data-v-2ff73915]{opacity:.9;transform:rotate(2deg);box-shadow:0 8px 25px #00000026}.meal-card__name[data-v-2ff73915]{font-weight:500;line-height:1.3;color:var(--color-text)}.day-row[data-v-5f29fe74]{display:grid;grid-template-columns:36px 1fr 1fr;column-gap:12px;row-gap:12px;align-items:start;padding:12px 16px;min-height:56px;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-day)}.day-row__label[data-v-5f29fe74]{display:flex;flex-direction:column;align-items:center;gap:2px;padding-top:1px;padding-right:8px;text-align:center;line-height:1;border-right:1px solid var(--color-border)}.day-row__day[data-v-5f29fe74]{font-weight:700;font-size:13px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.day-row__date[data-v-5f29fe74]{font-weight:600;font-size:15px;color:var(--color-text-secondary)}.day-row__eat[data-v-5f29fe74]{--card-bg: var(--color-eat-bg);--card-accent: var(--color-eat);display:flex;flex-direction:column;position:relative;padding-left:8px}.day-row__eat[data-v-5f29fe74]:before{content:"";position:absolute;left:-6px;top:0;bottom:0;width:1px;background:var(--color-border)}.day-row__cook[data-v-5f29fe74]{--card-bg: var(--color-cook-bg);--card-accent: var(--color-cook);display:flex;flex-direction:column}.day-row__items[data-v-5f29fe74]{display:flex;flex-direction:column;gap:8px;min-height:1px}.day-row__items[data-v-5f29fe74]:not(:empty){margin-bottom:8px}.day-row__items:empty+.day-row__add[data-v-5f29fe74]{margin-top:0}.day-row__add[data-v-5f29fe74]{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;padding:8px 0;border:1.5px dashed var(--color-border);border-radius:var(--radius-sm);background:none;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,color .15s;color:var(--color-text-secondary)}.day-row__add-icon[data-v-5f29fe74]{font-size:15px;line-height:1}.day-row__add-text[data-v-5f29fe74]{font-size:11px}.day-row__add--cook[data-v-5f29fe74]:hover{border-color:var(--color-cook);color:var(--color-cook);background:var(--color-cook-bg)}.day-row__add--eat[data-v-5f29fe74]:hover{border-color:var(--color-eat);color:var(--color-eat);background:var(--color-eat-bg)}.week-grid[data-v-6481b776]{display:flex;flex-direction:column;gap:12px}.week-grid__header[data-v-6481b776]{display:grid;grid-template-columns:36px 1fr 1fr;column-gap:12px;padding:0 16px}.week-grid__header-col[data-v-6481b776]{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:8px 0;border-radius:var(--radius-sm)}.week-grid__header-col--eat[data-v-6481b776]{color:var(--color-eat);background:var(--color-eat-bg-strong)}.week-grid__header-col--cook[data-v-6481b776]{color:var(--color-cook);background:var(--color-cook-bg-strong)}.modal-overlay[data-v-c1216bee]{position:fixed;inset:0;background:var(--overlay-bg);display:flex;align-items:center;justify-content:center;padding:16px}.modal-panel[data-v-c1216bee]{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-elevated);width:100%;max-width:420px;max-height:calc(100dvh - 32px);display:flex;flex-direction:column;overflow:hidden}.modal-header[data-v-c1216bee]{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-c1216bee]{font-size:17px;font-weight:700;color:var(--color-text);margin:0}.modal-close[data-v-c1216bee]{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:8px;transition:background .15s}.modal-close[data-v-c1216bee]:hover{background:var(--color-empty)}.modal-body[data-v-c1216bee]{padding:16px 20px;overflow-y:auto;flex:1}.modal-footer[data-v-c1216bee]{padding:12px 20px 16px;border-top:1px solid var(--color-border);flex-shrink:0}.modal-enter-active[data-v-c1216bee],.modal-leave-active[data-v-c1216bee]{transition:opacity .2s ease}.modal-enter-active .modal-panel[data-v-c1216bee],.modal-leave-active .modal-panel[data-v-c1216bee]{transition:transform .2s ease}.modal-enter-from[data-v-c1216bee],.modal-leave-to[data-v-c1216bee]{opacity:0}.modal-enter-from .modal-panel[data-v-c1216bee],.modal-leave-to .modal-panel[data-v-c1216bee]{transform:scale(.95)}.dish-search[data-v-2ff55bbf]{display:flex;flex-direction:column;gap:8px}.dish-search__input[data-v-2ff55bbf]{width:100%;padding:10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:15px;background:var(--color-surface);color:var(--color-text);outline:none;transition:border-color .15s}.dish-search__input[data-v-2ff55bbf]:focus{border-color:var(--color-mint)}.dish-search__list[data-v-2ff55bbf]{list-style:none;max-height:200px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.dish-search__item[data-v-2ff55bbf]{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;transition:background .1s}.dish-search__item[data-v-2ff55bbf]:hover{background:var(--color-empty)}.dish-search__info[data-v-2ff55bbf]{display:flex;flex-direction:column;gap:2px;min-width:0}.dish-search__badge[data-v-2ff55bbf]{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;white-space:nowrap;flex-shrink:0}.dish-search__badge--own[data-v-2ff55bbf]{background:#8a63b51f;color:var(--color-mint)}.dish-search__badge--shared[data-v-2ff55bbf]{background:var(--color-shared-bg);color:var(--color-shared)}.dish-search__item+.dish-search__item[data-v-2ff55bbf]{border-top:1px solid var(--color-border)}.dish-search__name[data-v-2ff55bbf]{font-size:13px;font-weight:500}.dish-search__category[data-v-2ff55bbf]{font-size:11px;color:var(--color-text-secondary)}.dish-search__status[data-v-2ff55bbf]{font-size:13px;color:var(--color-text-secondary);padding:8px 0}.dish-search__create[data-v-2ff55bbf]{align-self:flex-start;padding:8px 16px;border:1.5px dashed var(--color-border);border-radius:var(--radius-sm);background:transparent;font-size:13px;font-weight:500;color:var(--color-mint-hover);transition:background .15s,border-color .15s}.dish-search__create[data-v-2ff55bbf]:hover{background:var(--color-empty);border-color:var(--color-mint)}.form[data-v-a821beb1]{display:flex;flex-direction:column;gap:16px}.form__field[data-v-a821beb1]{display:flex;flex-direction:column;gap:4px}.form__label[data-v-a821beb1]{font-size:13px;font-weight:600;color:var(--color-text)}.form__input[data-v-a821beb1],.form__select[data-v-a821beb1]{padding:10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:15px;font-family:inherit;background:var(--color-surface);color:var(--color-text);outline:none;transition:border-color .15s}.form__input[data-v-a821beb1]:focus,.form__select[data-v-a821beb1]:focus{border-color:var(--color-mint)}.form__error[data-v-a821beb1]{font-size:13px;color:var(--color-danger);padding:4px 0}.form__submit[data-v-a821beb1]{padding:12px;border:none;border-radius:var(--radius-sm);background:var(--color-mint);color:var(--on-primary);font-size:15px;font-weight:600;transition:background .15s}.form__submit[data-v-a821beb1]:hover:not(:disabled){background:var(--color-mint-hover)}.form__submit[data-v-a821beb1]:disabled{opacity:.45;cursor:not-allowed}.form[data-v-3ccbc5a9]{display:flex;flex-direction:column;gap:16px}.form__field[data-v-3ccbc5a9]{display:flex;flex-direction:column;gap:4px}.form__section[data-v-3ccbc5a9]{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--color-border);padding-top:16px}.form__label[data-v-3ccbc5a9]{font-size:13px;font-weight:600;color:var(--color-text)}.form__input[data-v-3ccbc5a9],.form__select[data-v-3ccbc5a9],.form__textarea[data-v-3ccbc5a9]{padding:10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:15px;font-family:inherit;background:var(--color-surface);color:var(--color-text);outline:none;transition:border-color .15s;resize:vertical}.form__input[data-v-3ccbc5a9]:focus,.form__select[data-v-3ccbc5a9]:focus,.form__textarea[data-v-3ccbc5a9]:focus{border-color:var(--color-mint);outline:none}.form__error[data-v-3ccbc5a9]{font-size:13px;color:var(--color-danger);padding:4px 0}.form__submit[data-v-3ccbc5a9]{padding:12px;border:none;border-radius:var(--radius-sm);background:var(--color-mint);color:var(--on-primary);font-size:15px;font-weight:600;transition:background .15s}.form__submit[data-v-3ccbc5a9]:hover:not(:disabled){background:var(--color-mint-hover)}.form__submit[data-v-3ccbc5a9]:disabled{opacity:.45;cursor:not-allowed}.ingredient-row[data-v-3ccbc5a9]{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-empty);border-radius:8px;font-size:13px}.ingredient-row__name[data-v-3ccbc5a9]{flex:1;font-weight:500}.ingredient-row__amount[data-v-3ccbc5a9]{color:var(--color-text-secondary);font-size:13px}.ingredient-row__remove[data-v-3ccbc5a9]{width:24px;height:24px;border:none;background:none;color:var(--color-text-secondary);border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s}.ingredient-row__remove[data-v-3ccbc5a9]:hover{background:var(--color-border);color:var(--color-danger)}.ingredient-search[data-v-3ccbc5a9]{display:flex;flex-direction:column;gap:8px}.ingredient-search__list[data-v-3ccbc5a9]{list-style:none;max-height:150px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.ingredient-search__item[data-v-3ccbc5a9]{display:flex;justify-content:space-between;padding:8px 12px;cursor:pointer;font-size:13px;transition:background .1s}.ingredient-search__item[data-v-3ccbc5a9]:hover{background:var(--color-empty)}.ingredient-search__item+.ingredient-search__item[data-v-3ccbc5a9]{border-top:1px solid var(--color-border)}.ingredient-search__unit[data-v-3ccbc5a9]{font-size:11px;color:var(--color-text-secondary)}.ingredient-amount[data-v-3ccbc5a9]{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--color-empty);border-radius:8px}.ingredient-amount__name[data-v-3ccbc5a9]{font-size:13px;font-weight:500}.ingredient-amount__row[data-v-3ccbc5a9]{display:flex;align-items:center;gap:8px}.ingredient-amount__input[data-v-3ccbc5a9]{width:120px}.ingredient-amount__unit[data-v-3ccbc5a9]{font-size:13px;color:var(--color-text-secondary);white-space:nowrap}.ingredient-amount__optional[data-v-3ccbc5a9]{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-secondary)}.ingredient-amount__actions[data-v-3ccbc5a9]{display:flex;gap:8px}.btn[data-v-3ccbc5a9]{padding:8px 16px;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s}.btn--sm[data-v-3ccbc5a9]{background:var(--color-mint);color:var(--on-primary)}.btn--sm[data-v-3ccbc5a9]:hover{background:var(--color-mint-hover)}.btn--ghost[data-v-3ccbc5a9]{background:transparent;color:var(--color-text-secondary)}.btn--ghost[data-v-3ccbc5a9]:hover{background:var(--color-empty)}.dish-search__create[data-v-3ccbc5a9]{align-self:flex-start;padding:8px 16px;border:1.5px dashed var(--color-border);border-radius:var(--radius-sm);background:transparent;font-size:13px;font-weight:500;color:var(--color-mint-hover);transition:background .15s,border-color .15s}.dish-search__create[data-v-3ccbc5a9]:hover{background:var(--color-empty);border-color:var(--color-mint)}.date-input[data-v-ad2a6356]{position:relative}.date-input__text[data-v-ad2a6356]{width:100%;padding:10px 36px 10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:15px;font-family:inherit;background:var(--color-surface);color:var(--color-text);outline:none;transition:border-color .15s;box-sizing:border-box}.date-input__text[data-v-ad2a6356]:focus{border-color:var(--color-mint)}.date-input__btn[data-v-ad2a6356]{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)}.date-input__btn svg[data-v-ad2a6356]{width:18px;height:18px}.date-input__picker[data-v-ad2a6356]{position:absolute;top:0;right:0;width:0;height:0;opacity:0;pointer-events:none;border:none;padding:0}.multi-day-picker__chips[data-v-c6a1d3ba]{display:flex;flex-wrap:wrap;gap:8px}.multi-day-picker__chip[data-v-c6a1d3ba]{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 12px;min-width:48px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .15s,box-shadow .15s}.multi-day-picker__chip[data-v-c6a1d3ba]:hover:not(:disabled){background:#8a63b50f;border-color:var(--color-mint)}.multi-day-picker__chip--selected[data-v-c6a1d3ba]{background:var(--color-mint);border-color:var(--color-mint);color:var(--on-primary);transform:scale(1.05);box-shadow:0 2px 8px #8a63b540}.multi-day-picker__chip--selected[data-v-c6a1d3ba]:hover:not(:disabled){background:var(--color-mint-hover);border-color:var(--color-mint-hover);color:var(--on-primary);transform:scale(1.05);box-shadow:0 2px 8px #8a63b540}.multi-day-picker__weekday[data-v-c6a1d3ba]{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.multi-day-picker__date[data-v-c6a1d3ba]{font-size:13px;font-weight:500}.form[data-v-b46e92b2]{display:flex;flex-direction:column;gap:16px}.form__field[data-v-b46e92b2]{display:flex;flex-direction:column;gap:4px}.form__label[data-v-b46e92b2]{font-size:13px;font-weight:600;color:var(--color-text)}.form__input[data-v-b46e92b2],.form__textarea[data-v-b46e92b2]{padding:10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:15px;font-family:inherit;background:var(--color-surface);color:var(--color-text);outline:none;transition:border-color .15s;resize:vertical}.form__input[data-v-b46e92b2]:focus,.form__textarea[data-v-b46e92b2]:focus{border-color:var(--color-mint);outline:none}.form__error[data-v-b46e92b2]{font-size:13px;color:var(--color-danger);padding:4px 0}.form__submit[data-v-b46e92b2]{padding:12px;border:none;border-radius:var(--radius-sm);background:var(--color-mint);color:var(--on-primary);font-size:15px;font-weight:600;transition:background .15s}.form__submit[data-v-b46e92b2]:hover:not(:disabled){background:var(--color-mint-hover)}.form__submit[data-v-b46e92b2]:disabled{opacity:.45;cursor:not-allowed}.selected-dish[data-v-b46e92b2]{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[data-v-b46e92b2]{flex:1;font-size:15px;font-weight:500}.selected-dish__clear[data-v-b46e92b2]{width:24px;height:24px;border:none;background:none;font-size:18px;color:var(--color-text-secondary);border-radius:6px;display:flex;align-items:center;justify-content:center}.selected-dish__edit[data-v-b46e92b2]{width:24px;height:24px;border:none;background:none;color:var(--color-text-secondary);border-radius:6px;display:flex;align-items:center;justify-content:center;transition:color .15s}.selected-dish__edit[data-v-b46e92b2]:hover{color:var(--color-mint)}.selected-dish__clear[data-v-b46e92b2]:hover{background:var(--color-border);color:var(--color-danger)}.form[data-v-2a3ef9a3]{display:flex;flex-direction:column;gap:16px}.form__field[data-v-2a3ef9a3]{display:flex;flex-direction:column;gap:4px}.form__label[data-v-2a3ef9a3]{font-size:13px;font-weight:600;color:var(--color-text)}.form__input[data-v-2a3ef9a3]{padding:10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:15px;font-family:inherit;background:var(--color-surface);color:var(--color-text);outline:none;transition:border-color .15s}.form__input[data-v-2a3ef9a3]:focus{border-color:var(--color-mint);outline:none}.form__error[data-v-2a3ef9a3]{font-size:13px;color:var(--color-danger);padding:4px 0}.form__submit[data-v-2a3ef9a3]{padding:12px;border:none;border-radius:var(--radius-sm);background:var(--color-mint);color:var(--on-primary);font-size:15px;font-weight:600;transition:background .15s}.form__submit[data-v-2a3ef9a3]:hover:not(:disabled){background:var(--color-mint-hover)}.form__submit[data-v-2a3ef9a3]:disabled{opacity:.45;cursor:not-allowed}.selected-dish[data-v-2a3ef9a3]{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[data-v-2a3ef9a3]{flex:1;font-size:15px;font-weight:500}.selected-dish__edit[data-v-2a3ef9a3]{width:24px;height:24px;border:none;background:none;color:var(--color-text-secondary);border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:color .15s}.selected-dish__edit[data-v-2a3ef9a3]:hover{color:var(--color-mint)}.selected-dish__clear[data-v-2a3ef9a3]{width:24px;height:24px;border:none;background:none;font-size:18px;color:var(--color-text-secondary);border-radius:6px;display:flex;align-items:center;justify-content:center}.selected-dish__clear[data-v-2a3ef9a3]:hover{background:var(--color-border);color:var(--color-danger)}.detail[data-v-456cb322]{display:flex;flex-direction:column;gap:16px}.detail__section[data-v-456cb322]{display:flex;flex-direction:column;gap:12px}.detail__section+.detail__section[data-v-456cb322]{padding-top:16px;border-top:1px solid var(--color-border)}.detail__dish-name[data-v-456cb322]{font-size:17px;font-weight:700;color:var(--color-text);margin:0}.detail__dish-header[data-v-456cb322]{display:flex;align-items:center;justify-content:space-between;gap:8px}.detail__dish-title-row[data-v-456cb322]{display:flex;flex-direction:column;gap:4px;min-width:0}.detail__ownership-badge[data-v-456cb322]{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;width:fit-content}.detail__ownership-badge--own[data-v-456cb322]{background:#8a63b51f;color:var(--color-mint)}.detail__ownership-badge--shared[data-v-456cb322]{background:var(--color-shared-bg);color:var(--color-shared)}.detail__dish-edit[data-v-456cb322]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--color-text-secondary);border-radius:8px;flex-shrink:0;transition:background .15s,color .15s}.detail__dish-edit[data-v-456cb322]:hover{background:var(--color-empty);color:var(--color-mint)}.detail__meta[data-v-456cb322]{font-size:13px;color:var(--color-text-secondary);margin:0}.detail__description[data-v-456cb322]{font-size:15px;color:var(--color-text);line-height:1.5;margin:0}.detail__label[data-v-456cb322]{font-size:13px;font-weight:600;color:var(--color-text-secondary)}.detail__ingredients[data-v-456cb322]{list-style:none;display:flex;flex-direction:column;gap:4px}.detail__ingredient[data-v-456cb322]{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--color-border);border-radius:8px;font-size:13px}.detail__ingredient-name[data-v-456cb322]{font-weight:500;color:var(--color-text)}.detail__ingredient-amount[data-v-456cb322]{font-size:13px;color:var(--color-text-secondary);white-space:nowrap}.detail__row[data-v-456cb322]{display:flex;justify-content:space-between;align-items:center;gap:8px}.detail__row--col[data-v-456cb322]{flex-direction:column;align-items:flex-start}.detail__eat-dates[data-v-456cb322]{display:flex;flex-wrap:wrap;gap:8px}.detail__eat-date[data-v-456cb322]{padding:4px 12px;background:var(--color-empty);border-radius:var(--radius-sm);font-size:13px;font-weight:500;color:var(--color-text)}.detail__link[data-v-456cb322]{border:none;background:none;font-size:13px;font-weight:600;color:var(--color-mint);cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px;transition:color .15s,text-decoration-thickness .15s}.detail__link[data-v-456cb322]:hover{color:var(--color-mint-hover);text-decoration-thickness:2px}.detail__value[data-v-456cb322]{font-size:15px;font-weight:500;color:var(--color-text)}.detail__value--muted[data-v-456cb322]{color:var(--color-text-secondary);font-weight:400;font-size:13px}.detail__actions[data-v-456cb322]{display:flex;flex-direction:column;gap:8px}.detail__btn[data-v-456cb322]{width:100%;padding:12px;border:none;border-radius:var(--radius-sm);font-size:15px;font-weight:600;transition:background .15s,opacity .15s}.detail__btn--edit[data-v-456cb322]{background:var(--color-mint);color:var(--on-primary)}.detail__btn--edit[data-v-456cb322]:hover{background:var(--color-mint-hover)}.detail__btn--delete[data-v-456cb322]{background:var(--color-danger-pale);color:var(--color-danger-muted)}.detail__btn--delete[data-v-456cb322]:hover{background:var(--color-danger-bg)}.detail__btn--cancel[data-v-456cb322]{background:var(--color-empty);color:var(--color-text-secondary)}.detail__btn--cancel[data-v-456cb322]:hover{background:var(--color-border)}.detail__confirm-text[data-v-456cb322]{font-size:15px;font-weight:600;color:var(--color-danger-muted);text-align:center;margin:0 0 12px}.detail__confirm-actions[data-v-456cb322]{display:flex;gap:8px}.detail__confirm-actions .detail__btn[data-v-456cb322]{flex:1}.detail__clone-text[data-v-456cb322]{font-size:13px;color:var(--color-text);line-height:1.5;text-align:center;margin:0 0 12px}.planner[data-v-dfd4faa5]{max-width:480px;margin:0 auto;padding:12px 16px 80px;display:flex;flex-direction:column;gap:12px;min-height:100dvh;position:relative}.planner__grid--loading[data-v-dfd4faa5]{opacity:.5;transition:opacity .2s ease;pointer-events:none}.planner__toast[data-v-dfd4faa5]{position:fixed;bottom:80px;left:50%;transform:translate(-50%);padding:12px 20px;background:var(--color-text);color:var(--color-surface);border-radius:var(--radius-sm);font-size:13px;box-shadow:var(--shadow-elevated);cursor:pointer;z-index:99999;max-width:calc(100vw - 32px);text-align:center}.toast-enter-active[data-v-dfd4faa5],.toast-leave-active[data-v-dfd4faa5]{transition:opacity .25s ease,transform .25s ease}.toast-enter-from[data-v-dfd4faa5],.toast-leave-to[data-v-dfd4faa5]{opacity:0;transform:translate(-50%) translateY(12px)}@media(min-width:600px){.planner[data-v-dfd4faa5]{max-width:540px;padding:16px 24px 88px}}.page[data-v-1b35ba18]{max-width:480px;margin:0 auto;padding:12px 16px 80px;min-height:100dvh}.page__title[data-v-1b35ba18]{font-size:var(--font-lg);font-weight:700;color:var(--color-text);margin:0 0 16px}.page__placeholder[data-v-1b35ba18]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:48px 24px;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);text-align:center}.page__placeholder-icon[data-v-1b35ba18]{color:var(--color-border)}.page__placeholder-text[data-v-1b35ba18]{font-size:var(--font-md);color:var(--color-text-secondary);margin:0}@media(min-width:600px){.page[data-v-1b35ba18]{max-width:540px;padding:16px 24px 88px}}.dish-card[data-v-cfc5001f]{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:12px 14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);text-align:left;cursor:pointer;transition:background .12s,box-shadow .12s;-webkit-tap-highlight-color:transparent}.dish-card[data-v-cfc5001f]:active{background:var(--color-empty)}.dish-card__main[data-v-cfc5001f]{display:flex;flex-direction:column;gap:3px;min-width:0}.dish-card__name[data-v-cfc5001f]{font-size:var(--font-md);font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dish-card__meta[data-v-cfc5001f]{display:flex;align-items:center;gap:8px;font-size:var(--font-xs);color:var(--color-text-secondary)}.dish-card__category[data-v-cfc5001f]{font-weight:500}.dish-card__ingredients[data-v-cfc5001f]{opacity:.7}.filter-overlay[data-v-92bac752]{position:fixed;inset:0;background:var(--overlay-bg);z-index:950;display:flex;justify-content:flex-end}.filter-panel[data-v-92bac752]{width:300px;max-width:85vw;height:100%;background:var(--color-surface);display:flex;flex-direction:column;box-shadow:-4px 0 16px #0000001a}.filter-panel__header[data-v-92bac752]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--color-border);flex-shrink:0}.filter-panel__title[data-v-92bac752]{font-size:17px;font-weight:700;color:var(--color-text);margin:0}.filter-panel__close[data-v-92bac752]{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:8px;transition:background .15s}.filter-panel__close[data-v-92bac752]:hover{background:var(--color-empty)}.filter-panel__body[data-v-92bac752]{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:24px}.filter-section__label[data-v-92bac752]{display:block;font-size:var(--font-sm);font-weight:600;color:var(--color-text-secondary);margin-bottom:10px;text-transform:uppercase;letter-spacing:.04em}.filter-section__options[data-v-92bac752]{display:flex;flex-direction:column;gap:4px}.filter-radio[data-v-92bac752]{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .12s}.filter-radio[data-v-92bac752]:hover{background:var(--color-empty)}.filter-radio--active[data-v-92bac752]{background:#8a63b514}.filter-radio__input[data-v-92bac752]{appearance:none;width:18px;height:18px;border:2px solid var(--color-border);border-radius:50%;flex-shrink:0;position:relative;transition:border-color .15s}.filter-radio__input[data-v-92bac752]:checked{border-color:var(--color-mint)}.filter-radio__input[data-v-92bac752]:checked:after{content:"";position:absolute;top:3px;left:3px;width:8px;height:8px;border-radius:50%;background:var(--color-mint)}.filter-radio__label[data-v-92bac752]{font-size:var(--font-md);color:var(--color-text);font-weight:500}.filter-panel__footer[data-v-92bac752]{display:flex;gap:8px;padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--color-border);flex-shrink:0}.filter-panel__clear[data-v-92bac752]{flex:1;padding:12px;border:none;border-radius:var(--radius-sm);background:var(--color-empty);color:var(--color-text-secondary);font-size:var(--font-md);font-weight:600;transition:background .15s}.filter-panel__clear[data-v-92bac752]:hover:not(:disabled){background:var(--color-border)}.filter-panel__clear[data-v-92bac752]:disabled{opacity:.4;cursor:not-allowed}.filter-panel__apply[data-v-92bac752]{flex:1;padding:12px;border:none;border-radius:var(--radius-sm);background:var(--color-mint);color:var(--on-primary);font-size:var(--font-md);font-weight:600;transition:background .15s}.filter-panel__apply[data-v-92bac752]:hover{background:var(--color-mint-hover)}.filter-panel-enter-active[data-v-92bac752],.filter-panel-leave-active[data-v-92bac752]{transition:opacity .25s ease}.filter-panel-enter-active .filter-panel[data-v-92bac752],.filter-panel-leave-active .filter-panel[data-v-92bac752]{transition:transform .25s ease}.filter-panel-enter-from[data-v-92bac752],.filter-panel-leave-to[data-v-92bac752]{opacity:0}.filter-panel-enter-from .filter-panel[data-v-92bac752],.filter-panel-leave-to .filter-panel[data-v-92bac752]{transform:translate(100%)}.detail[data-v-73ff383d]{display:flex;flex-direction:column;gap:16px}.detail__section[data-v-73ff383d]{display:flex;flex-direction:column;gap:12px}.detail__section+.detail__section[data-v-73ff383d]{padding-top:16px;border-top:1px solid var(--color-border)}.detail__dish-header[data-v-73ff383d]{display:flex;align-items:center;justify-content:space-between;gap:8px}.detail__dish-title-row[data-v-73ff383d]{display:flex;flex-direction:column;gap:4px;min-width:0}.detail__dish-name[data-v-73ff383d]{font-size:17px;font-weight:700;color:var(--color-text);margin:0}.detail__ownership-badge[data-v-73ff383d]{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;width:fit-content}.detail__ownership-badge--own[data-v-73ff383d]{background:#8a63b51f;color:var(--color-mint)}.detail__ownership-badge--shared[data-v-73ff383d]{background:var(--color-shared-bg);color:var(--color-shared)}.detail__dish-edit[data-v-73ff383d]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--color-text-secondary);border-radius:8px;flex-shrink:0;transition:background .15s,color .15s}.detail__dish-edit[data-v-73ff383d]:hover{background:var(--color-empty);color:var(--color-mint)}.detail__meta[data-v-73ff383d]{font-size:13px;color:var(--color-text-secondary);margin:0}.detail__description[data-v-73ff383d]{font-size:15px;color:var(--color-text);line-height:1.5;margin:0}.detail__label[data-v-73ff383d]{font-size:13px;font-weight:600;color:var(--color-text-secondary)}.detail__ingredients[data-v-73ff383d]{list-style:none;display:flex;flex-direction:column;gap:4px}.detail__ingredient[data-v-73ff383d]{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--color-border);border-radius:8px;font-size:13px}.detail__ingredient-name[data-v-73ff383d]{font-weight:500;color:var(--color-text)}.detail__ingredient-amount[data-v-73ff383d]{font-size:13px;color:var(--color-text-secondary);white-space:nowrap}.detail__loading[data-v-73ff383d]{text-align:center;font-size:var(--font-sm);color:var(--color-text-secondary);padding:12px 0}.detail__actions[data-v-73ff383d]{display:flex;flex-direction:column;gap:8px}.detail__btn[data-v-73ff383d]{width:100%;padding:12px;border:none;border-radius:var(--radius-sm);font-size:15px;font-weight:600;transition:background .15s,opacity .15s}.detail__btn--edit[data-v-73ff383d]{background:var(--color-mint);color:var(--on-primary)}.detail__btn--edit[data-v-73ff383d]:hover{background:var(--color-mint-hover)}.detail__btn--delete[data-v-73ff383d]{background:var(--color-danger-pale);color:var(--color-danger-muted)}.detail__btn--delete[data-v-73ff383d]:hover{background:var(--color-danger-bg)}.detail__btn--cancel[data-v-73ff383d]{background:var(--color-empty);color:var(--color-text-secondary)}.detail__btn--cancel[data-v-73ff383d]:hover{background:var(--color-border)}.detail__confirm-text[data-v-73ff383d]{font-size:15px;font-weight:600;color:var(--color-danger-muted);text-align:center;margin:0 0 12px}.detail__confirm-actions[data-v-73ff383d]{display:flex;gap:8px}.detail__confirm-actions .detail__btn[data-v-73ff383d]{flex:1}.detail__clone-text[data-v-73ff383d]{font-size:13px;color:var(--color-text);line-height:1.5;text-align:center;margin:0 0 12px}.recipes-page[data-v-9891a7ac]{max-width:480px;margin:0 auto;padding:12px 16px 80px;min-height:100dvh;display:flex;flex-direction:column;gap:12px}.recipes-header[data-v-9891a7ac]{display:flex;align-items:center;justify-content:space-between}.recipes-header__title[data-v-9891a7ac]{font-size:var(--font-lg);font-weight:700;color:var(--color-text);margin:0}.recipes-header__filter-btn[data-v-9891a7ac]{position:relative;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;transition:background .15s}.recipes-header__filter-btn[data-v-9891a7ac]:active{background:var(--color-border)}.recipes-header__filter-dot[data-v-9891a7ac]{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--color-mint)}.recipes-search[data-v-9891a7ac]{position:relative;display:flex;align-items:center}.recipes-search__icon[data-v-9891a7ac]{position:absolute;left:12px;color:var(--color-text-secondary);pointer-events:none}.recipes-search__input[data-v-9891a7ac]{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 .15s}.recipes-search__input[data-v-9891a7ac]:focus{border-color:var(--color-mint)}.recipes-search__input[data-v-9891a7ac]::placeholder{color:var(--color-text-secondary);opacity:.6}.recipes-search__clear[data-v-9891a7ac]{position:absolute;right:4px;width:28px;height:28px;border:none;background:none;color:var(--color-text-secondary);font-size:18px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:background .12s}.recipes-search__clear[data-v-9891a7ac]:hover{background:var(--color-empty)}.recipes-chips[data-v-9891a7ac]{display:flex;flex-wrap:wrap;gap:6px}.recipes-chip[data-v-9891a7ac]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--color-border);border-radius:20px;background:var(--color-empty);font-size:var(--font-xs);font-weight:500;color:var(--color-text);cursor:pointer;transition:background .12s}.recipes-chip[data-v-9891a7ac]:hover{background:var(--color-border)}.recipes-chip__x[data-v-9891a7ac]{font-size:14px;line-height:1;color:var(--color-text-secondary)}.recipes-loading[data-v-9891a7ac]{display:flex;flex-direction:column;align-items:center;gap:10px;padding:40px 0;font-size:var(--font-sm);color:var(--color-text-secondary)}.recipes-spinner[data-v-9891a7ac]{width:28px;height:28px;border:3px solid var(--color-border);border-top-color:var(--color-mint);border-radius:50%;animation:spin-9891a7ac .7s linear infinite}.recipes-spinner--sm[data-v-9891a7ac]{width:20px;height:20px;border-width:2px}@keyframes spin-9891a7ac{to{transform:rotate(360deg)}}.recipes-empty[data-v-9891a7ac]{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}.recipes-empty__text[data-v-9891a7ac]{font-size:var(--font-md);color:var(--color-text-secondary);margin:0}.recipes-empty__reset[data-v-9891a7ac]{padding:8px 16px;border:none;border-radius:var(--radius-sm);background:var(--color-empty);color:var(--color-mint);font-size:var(--font-sm);font-weight:600;cursor:pointer;transition:background .15s}.recipes-empty__reset[data-v-9891a7ac]:hover{background:var(--color-border)}.recipes-empty__add[data-v-9891a7ac]{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 .15s}.recipes-empty__add[data-v-9891a7ac]:hover{background:var(--color-mint-hover)}.recipes-tabs[data-v-9891a7ac]{display:flex;gap:0;background:var(--color-empty);border-radius:var(--radius-sm);padding:3px}.recipes-tabs__item[data-v-9891a7ac]{flex:1;padding:8px 0;border:none;border-radius:8px;background:transparent;font-size:var(--font-sm);font-weight:600;color:var(--color-text-secondary);cursor:pointer;transition:background .15s,color .15s,box-shadow .15s;-webkit-tap-highlight-color:transparent}.recipes-tabs__item--active[data-v-9891a7ac]{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 3px #00000014}.recipes-list[data-v-9891a7ac]{display:flex;flex-direction:column;gap:8px}.recipes-sentinel[data-v-9891a7ac]{display:flex;justify-content:center;padding:12px 0;min-height:1px}.recipes-fab[data-v-9891a7ac]{position:fixed;bottom:calc(64px + env(safe-area-inset-bottom,0px));right:max(16px,calc((100vw - 480px)/2 + 16px));width:52px;height:52px;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:800;transition:background .15s,transform .15s;-webkit-tap-highlight-color:transparent}.recipes-fab[data-v-9891a7ac]:hover{background:var(--color-mint-hover)}.recipes-fab[data-v-9891a7ac]:active{transform:scale(.93)}.recipes-toast[data-v-9891a7ac]{position:fixed;bottom:80px;left:50%;transform:translate(-50%);padding:12px 20px;background:var(--color-text);color:var(--color-surface);border-radius:var(--radius-sm);font-size:13px;box-shadow:var(--shadow-elevated);cursor:pointer;z-index:99999;max-width:calc(100vw - 32px);text-align:center}.toast-enter-active[data-v-9891a7ac],.toast-leave-active[data-v-9891a7ac]{transition:opacity .25s ease,transform .25s ease}.toast-enter-from[data-v-9891a7ac],.toast-leave-to[data-v-9891a7ac]{opacity:0;transform:translate(-50%) translateY(12px)}@media(min-width:600px){.recipes-page[data-v-9891a7ac]{max-width:540px;padding:16px 24px 88px}}
