.report[data-v-40cb2bde]{border-left:4px solid var(--warn);background:var(--surface-2);border-radius:6px;margin:6px 0;padding:6px 8px}.report.error[data-v-40cb2bde]{border-left-color:var(--danger)}.report summary[data-v-40cb2bde]{cursor:pointer;grid-template-columns:auto 1fr;gap:2px 8px;display:grid}.report summary small[data-v-40cb2bde]{grid-column:2}.msg[data-v-40cb2bde]{word-break:break-word}.copy[data-v-40cb2bde]{width:100%;font-size:12px}.diag[data-v-40cb2bde]{margin-top:12px}pre[data-v-40cb2bde]{white-space:pre-wrap;word-break:break-word;background:#7f7f7f1a;border-radius:4px;max-height:240px;padding:6px;font-size:12px;overflow:auto}dl[data-v-40cb2bde]{grid-template-columns:auto 1fr;gap:2px 10px;margin:6px 0;font-size:13px;display:grid}dd[data-v-40cb2bde]{word-break:break-word;margin:0}.small[data-v-40cb2bde]{font-size:12px}.pill.err[data-v-40cb2bde]{background:var(--danger);color:#fff}.pill.warn[data-v-40cb2bde]{background:var(--warn);color:#000}.stats[data-v-fd5d1087]{gap:4px;margin:6px 0;padding:0;list-style:none;display:grid}.invite-link[data-v-fd5d1087]{width:100%}figure[data-v-fd5d1087]{margin:0}.sync-pill[data-v-604d2a37]{color:var(--text);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border:0;max-width:100%;overflow:hidden}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font:"Inter Variable", Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--bg:#f2f6f3;--surface:#fff;--surface-2:#f6faf7;--surface-3:#e8f1eb;--border:#dbe6df;--border-strong:#c3d5c9;--text:#15302a;--text-2:#4f665c;--text-3:#7d9188;--primary:#1f7a55;--primary-hover:#19694a;--primary-press:#145a3e;--primary-soft:#dff0e6;--on-primary:#fff;--header-from:#143a2f;--header-to:#1f6047;--ok:#1f7a55;--warn:#b26a12;--warn-soft:#fbf0db;--danger:#b23b3b;--danger-soft:#fbe5e3;--over:#d48a2c;--radius-sm:10px;--radius:14px;--radius-lg:18px;--shadow:0 1px 2px #10291c0d, 0 4px 14px #10291c0f;--shadow-pop:0 10px 30px #10291c29;--focus:0 0 0 3px #1f7a5547;--tap:44px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font);color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font-feature-settings:"cv11", "ss01"}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e1613;--surface:#16211d;--surface-2:#1b2823;--surface-3:#22332c;--border:#273a32;--border-strong:#35503f;--text:#e3eee8;--text-2:#a7bcb1;--text-3:#7a9086;--primary:#3bb07f;--primary-hover:#47bf8c;--primary-press:#2f9a6d;--primary-soft:#1d3a2e;--on-primary:#06140e;--header-from:#10251e;--header-to:#17402f;--ok:#4cc28f;--warn:#e0a24a;--warn-soft:#3a2d17;--danger:#e07171;--danger-soft:#3d1f1f;--over:#e0a24a;--shadow:0 1px 2px #0000004d, 0 4px 14px #00000040;--shadow-pop:0 10px 30px #00000080;--focus:0 0 0 3px #3bb07f59;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0e1613;--surface:#16211d;--surface-2:#1b2823;--surface-3:#22332c;--border:#273a32;--border-strong:#35503f;--text:#e3eee8;--text-2:#a7bcb1;--text-3:#7a9086;--primary:#3bb07f;--primary-hover:#47bf8c;--primary-press:#2f9a6d;--primary-soft:#1d3a2e;--on-primary:#06140e;--header-from:#10251e;--header-to:#17402f;--ok:#4cc28f;--warn:#e0a24a;--warn-soft:#3a2d17;--danger:#e07171;--danger-soft:#3d1f1f;--over:#e0a24a;--shadow:0 1px 2px #0000004d, 0 4px 14px #00000040;--shadow-pop:0 10px 30px #00000080;--focus:0 0 0 3px #3bb07f59;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;line-height:1.45}a{color:var(--primary)}code{background:var(--surface-3);border-radius:6px;padding:1px 5px;font-size:.9em}h1,h2,h3{letter-spacing:-.01em;line-height:1.2}h2{margin:0 0 12px;font-size:1.25rem;font-weight:700}h3{margin:14px 0 8px;font-size:1.05rem;font-weight:650}::selection{background:var(--primary-soft)}.app{max-width:980px;margin:auto;padding:14px}header{background:linear-gradient(135deg, var(--header-from), var(--header-to));color:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow);margin-bottom:12px;padding:18px 20px}header h1{letter-spacing:-.02em;margin:0;font-size:1.35rem;font-weight:750}header p{color:#ffffffd1;margin:6px 0}nav{gap:6px;margin:14px 0;display:flex;overflow-x:auto}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border-radius:var(--radius-sm);background:var(--primary);min-height:40px;color:var(--on-primary);-webkit-tap-highlight-color:transparent;border:0;padding:9px 14px;font-weight:600;transition:background-color .15s,box-shadow .15s,transform 80ms,opacity .15s}button:hover{background:var(--primary-hover)}button:active{background:var(--primary-press);transform:scale(.97)}button:focus-visible{box-shadow:var(--focus);outline:none}button:disabled{opacity:.45;cursor:not-allowed;transform:none}button.alt{background:var(--surface-3);color:var(--text)}button.alt:hover{background:var(--primary-soft)}button.alt:active{background:var(--border-strong)}button.danger,.danger{background:var(--danger);color:#fff}button.danger:hover{background:var(--danger);filter:brightness(1.08)}button.small,.small button{min-height:34px;padding:6px 10px}.linkish{color:var(--primary);background:0 0;min-height:0;padding:0 4px;font-weight:500;text-decoration:underline}.linkish:hover,.linkish:active{background:0 0;transform:none}.button-link{min-height:var(--tap);background:var(--primary);color:var(--on-primary);border-radius:var(--radius-sm);align-items:center;padding:10px 16px;font-weight:600;text-decoration:none;display:inline-flex}input,select,textarea{min-height:var(--tap);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);padding:10px 12px;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;min-height:0}input::placeholder,textarea::placeholder{color:var(--text-3)}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:var(--focus);outline:none}input[type=checkbox],input[type=radio]{min-height:0;accent-color:var(--primary)}input[type=number]{max-width:190px}.field input[type=number]{max-width:none}.field{color:var(--text-2);flex-direction:column;gap:6px;margin:8px 0;font-size:.9rem;font-weight:550;display:flex}.field input,.field select,.field textarea{width:100%;color:var(--text);font-size:1rem;font-weight:400}.check{align-items:center;gap:10px;min-height:36px;margin:6px 0;display:flex}.check input{flex:none;width:20px;height:20px}.panel{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid var(--border);margin-bottom:12px;padding:18px}.panel .panel{box-shadow:none;background:var(--surface-2)}.grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;display:grid}.row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.grow{flex:1;min-width:0}.muted{color:var(--text-2);font-size:13px}.small{font-size:12px}.pill{background:var(--primary-soft);color:var(--text);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:12px;font-weight:550;display:inline-flex}.meal{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius);margin:8px 0;padding:14px}.meal strong{display:block}.notice+.panel,.panel+.notice{margin-top:12px}div.notice:has(+.panel){border-radius:var(--radius)}.notice{border-left:4px solid var(--primary);background:var(--primary-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:10px 12px}details{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin:8px 0;padding:10px 12px}details[open]{background:var(--surface-2)}summary{cursor:pointer;min-height:28px;font-weight:650;display:list-item}summary::marker{color:var(--text-3)}canvas{width:100%;height:auto;display:block}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}td,th{border-bottom:1px solid var(--border);text-align:left;padding:8px 7px}th{color:var(--text-2);font-weight:600}.photo{object-fit:contain;border-radius:var(--radius-sm);width:100%;max-height:310px}.delta-down{color:var(--ok)}.delta{color:var(--text-2)}footer{color:var(--text-3);text-align:center;padding:15px;font-size:12px}.days{gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.days button{border-radius:999px;min-width:58px}.days .active{background:var(--primary);color:var(--on-primary)}.bar{background:var(--surface-3);border-radius:999px;height:10px;overflow:hidden}.bar>span{background:var(--primary);border-radius:999px;height:100%;transition:width .5s cubic-bezier(.2,.8,.2,1);display:block}.bar>span.over{background:var(--over)}@media (width<=500px){.app{padding:8px}.panel{border-radius:var(--radius);padding:14px}nav button{padding:9px 7px;font-size:12px}}.toasts{left:0;right:0;bottom:calc(16px + env(safe-area-inset-bottom));z-index:50;pointer-events:none;flex-direction:column;align-items:center;gap:8px;padding:0 16px;display:flex;position:fixed}.toast{pointer-events:auto;text-align:left;color:#fff;border-radius:var(--radius);width:100%;max-width:520px;box-shadow:var(--shadow-pop);background:#15302a;padding:12px 14px;font-weight:500;animation:.22s ease-out toast-in}.toast:hover{background:#15302a}.toast.error{background:#9b2c2c}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.header-top{justify-content:space-between;align-items:center}.header-top h1{margin:0}.icon-btn{color:#fff;background:#ffffff24;border-radius:12px;min-height:40px;padding:6px 10px;font-size:20px}.icon-btn:hover{background:#ffffff38}.icon-btn.active{background:#ffffff52}.main-nav{gap:6px;display:flex}.main-nav button{background:var(--surface);color:var(--text-2);border:1px solid var(--border);box-shadow:var(--shadow);flex:1;justify-content:center;align-items:center;gap:6px;display:flex}.main-nav button:hover{background:var(--primary-soft);color:var(--text)}.main-nav button.active{background:var(--primary);color:var(--on-primary);border-color:#0000}.sub-nav{background:var(--surface-3);border-radius:14px;gap:4px;margin:0 0 12px;padding:4px;display:flex;overflow-x:auto}.sub-nav button{color:var(--text-2);white-space:nowrap;background:0 0;border-radius:10px;flex:1;min-height:38px;padding:8px 10px;font-weight:550}.sub-nav button:hover{color:var(--text);background:0 0}.sub-nav button.active{background:var(--surface);color:var(--text);font-weight:650;box-shadow:0 1px 3px #0000001f}@media (width<=700px){.app{padding-bottom:calc(88px + env(safe-area-inset-bottom))}.main-nav{z-index:40;background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(14px);backdrop-filter:saturate(1.4)blur(14px);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom));gap:0;margin:0;position:fixed;bottom:0;left:0;right:0}.main-nav button{color:var(--text-2);box-shadow:none;background:0 0;border:0;flex-direction:column;gap:3px;min-height:52px;padding:4px 2px;font-size:11px;font-weight:550}.main-nav button:hover,.main-nav button:active{background:0 0}.main-nav button span{border-radius:999px;padding:4px 16px;font-size:20px;line-height:1;transition:background-color .2s}.main-nav button.active{color:var(--text);background:0 0;font-weight:700}.main-nav button.active span{background:var(--primary-soft)}.sub-nav{margin-top:10px}.toasts{bottom:calc(88px + env(safe-area-inset-bottom))}}.metric-value{font-variant-numeric:tabular-nums;margin:4px 0}.metric-value small{color:var(--text-2);font-size:.65em;font-weight:500}.auth{max-width:440px;margin:0 auto;padding:16px}.auth header{margin-bottom:14px}.auth form{gap:4px;display:grid}.space-picker{max-width:360px}.macro-line{flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0;display:flex}.day-bars{gap:10px;margin-bottom:12px;display:grid}.swap,.builder,.product-search,.shop-add{border:1px solid var(--border);background:var(--surface-2);border-radius:var(--radius);margin:8px 0;padding:12px}.swap-search,.shop-search input{box-sizing:border-box;width:100%}.swap-filters{margin:6px 0}.swap-item,.result{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:10px 0;display:flex}.swap-main{min-width:0}.up{color:var(--warn)}.down{color:var(--ok)}.good{color:var(--ok);font-weight:650}.warn{color:var(--warn)}.macro-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.ing-row{grid-template-columns:1fr 80px 74px auto;align-items:start;gap:6px;margin:6px 0;display:grid}.ing-row .ing-info,.ing-row .product-search{grid-column:1/-1}.ing-name{position:relative}.ing-name input{box-sizing:border-box;width:100%}.ing-qty{width:80px;max-width:100px}.suggest{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-pop);z-index:30;max-height:280px;margin:4px 0 0;padding:4px;list-style:none;position:absolute;left:0;right:0;overflow:auto}.suggest.static{box-shadow:none;position:static}.suggest li{cursor:pointer;border-radius:8px;min-height:40px;padding:10px}.suggest li:hover{background:var(--primary-soft)}.shop-search{margin:8px 0}.shop-item{border-bottom:1px solid var(--border);align-items:center;gap:8px;min-height:48px;padding:7px 0;display:flex}.shop-item input[type=checkbox]{flex:none;width:20px;height:20px}.shop-name{flex:1;min-width:0}.shop-item.done .shop-name{color:var(--text-3);text-decoration:line-through}.shop-qty{font-variant-numeric:tabular-nums;flex:none}@media (width<=520px){.ing-row{grid-template-columns:1fr 70px 70px auto}}.hc-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:0 10px;display:grid}.date-nav{flex-wrap:nowrap;margin-bottom:10px}.date-nav input{max-width:150px}.cap{text-transform:capitalize;text-align:center;flex:1}.diary-summary{text-align:center;margin:6px 0 14px}.diary-summary .big{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:34px;font-weight:750}.diary-summary small{color:var(--text-2);letter-spacing:0;font-size:14px;font-weight:450}.diary-plan{align-items:flex-start}.forecast .big,.weekly .big{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:22px;font-weight:750}.weekly-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.lock{opacity:.55}.lock.on{opacity:1;background:var(--warn-soft)}.shop-section{color:var(--primary);text-transform:uppercase;letter-spacing:.06em;margin:16px 0 4px;font-size:12px;font-weight:700}.shop-home{margin-top:12px}.prep-note{color:var(--warn);background:var(--warn-soft);border-radius:8px;margin:4px 0;padding:4px 10px;font-size:13px;font-weight:550;display:inline-block}.plan-ex{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:end;gap:6px;padding:8px 0;display:flex}.plan-ex label,.session-row label{flex-direction:column;gap:2px;display:flex}.plan-hist{flex-basis:100%}.dialog-backdrop{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#050f0a80;justify-content:center;align-items:center;padding:16px;animation:.15s ease-out fade-in;display:flex;position:fixed;inset:0}.dialog{background:var(--surface);width:100%;max-width:420px;color:var(--text);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);padding:20px;animation:.2s ease-out toast-in}.dialog-text{margin:0 0 16px;font-size:1rem;line-height:1.5}.dialog-actions{justify-content:flex-end}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.update-banner{background:var(--primary-soft);border:1px solid var(--primary);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px;padding:12px 14px;animation:.25s ease-out toast-in;display:flex}.lucide{vertical-align:-.18em;flex:none}button .lucide{vertical-align:-.2em}button:has(>.lucide){justify-content:center;align-items:center;gap:6px;display:inline-flex}.ih{align-items:center;gap:8px;display:flex}.ih .lucide{color:var(--primary)}.brand{align-items:center;gap:8px;display:flex}.who{align-items:center;gap:6px;display:inline-flex}.sync-pill{align-items:center;gap:6px;display:inline-flex!important}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.main-nav button span{justify-content:center;align-items:center;display:inline-flex}.rings{grid-template-columns:repeat(4,1fr);gap:6px;margin:4px 0 12px;display:grid}.ring{text-align:center;flex-direction:column;align-items:center;display:flex;position:relative}.ring svg{width:100%;max-width:92px;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:7px}.ring .track{stroke:var(--surface-3)}.ring .fill{stroke:var(--primary);stroke-linecap:round;transition:stroke-dashoffset .7s cubic-bezier(.2,.8,.2,1)}.ring.over .fill{stroke:var(--over)}.ring-val{aspect-ratio:1;font-variant-numeric:tabular-nums;flex-direction:column;justify-content:center;align-items:center;max-width:92px;margin:0 auto;line-height:1.05;display:flex;position:absolute;top:0;left:0;right:0}.ring-val b{font-size:15px;font-weight:750}.ring-val small{color:var(--text-2);font-size:10px}.ring-label{color:var(--text-2);margin-top:4px;font-size:12px;font-weight:600}@media (width>=600px){.ring-val b{font-size:17px}}.chart-wrap{touch-action:pan-y;position:relative}.chart-tip{pointer-events:none;white-space:nowrap;background:var(--text);color:var(--surface);border-radius:999px;padding:4px 9px;font-size:12px;font-weight:600;position:absolute;top:4px;transform:translate(-50%)}.chart-legend{justify-content:flex-end;align-items:center;gap:6px;margin-top:2px;display:flex}.lg-line,.lg-dash{border-top:2.5px solid var(--primary);width:18px;height:0;display:inline-block}.lg-dash{border-top:1.5px dashed var(--text-2);margin-left:8px}.page-enter-active,.page-leave-active{transition:opacity .16s,transform .16s}.page-enter-from{opacity:0;transform:translateY(6px)}.page-leave-to{opacity:0}.list-enter-active,.list-leave-active{transition:opacity .22s,transform .22s}.list-enter-from{opacity:0;transform:translate(-10px)}.list-leave-to{opacity:0;transform:translate(10px)}.list-move{transition:transform .25s}input[type=checkbox]{transition:transform .15s}input[type=checkbox]:checked{animation:.25s ease-out pop}@keyframes pop{50%{transform:scale(1.25)}}.shop-name,.diary-plan span{transition:color .2s}.empty{border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--text-2);align-items:center;gap:12px;margin:8px 0;padding:14px;font-size:14px;display:flex}.empty .lucide{color:var(--text-3)}.skeleton{gap:10px;padding:6px 0;display:grid}.skeleton.card{border:1px solid var(--border);border-radius:var(--radius);padding:14px}.sk-line{background:linear-gradient(90deg, var(--surface-3) 25%, var(--surface-2) 50%, var(--surface-3) 75%);background-size:200% 100%;border-radius:6px;height:12px;animation:1.2s linear infinite shimmer;display:block}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.claude-ask{border:1px solid var(--border);background:var(--surface-2);border-radius:var(--radius);margin:10px 0;padding:10px 12px}.claude-ask textarea{width:100%}.hidden{display:none!important}.missing-code{border-radius:var(--radius);margin:10px 0}
