:root{--bg:#f5f3ef;--surface:#fff;--surface-2:#eeebe5;--surface-3:#e4e0d8;--text:#1b1a18;--text-2:#6a665e;--text-3:#9a958b;--line:#e2ded6;--accent:#d4532b;--accent-ink:#fff;--accent-soft:#fbe5dc;--blue:#2f6bd6;--blue-soft:#e3ecfb;--amber:#a86a12;--amber-soft:#f8ecd6;--danger:#c0392b;--shadow:0 1px 2px #1b1a180d, 0 4px 16px #1b1a180f;--radius:18px;--radius-sm:12px;--tabbar-h:64px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#111110;--surface:#1c1b19;--surface-2:#262421;--surface-3:#33302c;--text:#f2efe9;--text-2:#a5a096;--text-3:#77726a;--line:#2f2c28;--accent:#f07a52;--accent-ink:#1b0c06;--accent-soft:#3a2219;--blue:#7aa5f0;--blue-soft:#1d2a40;--amber:#e3a948;--amber-soft:#3a2c14;--shadow:0 1px 2px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{min-height:100dvh}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0;font:16px/1.45 -apple-system,BlinkMacSystemFont,SF Pro Text,Inter,system-ui,sans-serif}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}input,textarea{appearance:none}h1,h2,h3,p{margin:0}.num{font-variant-numeric:tabular-nums}.app{min-height:100%}.screen{padding:calc(var(--safe-top) + 12px) 16px calc(var(--tabbar-h) + var(--safe-bottom) + 24px);max-width:640px;margin:0 auto}.screen.no-tabbar{padding-bottom:calc(var(--safe-bottom) + 32px)}.eyebrow{color:var(--text-2);font-size:13px;font-weight:600}.eyebrow:first-letter{text-transform:uppercase}.large-title{letter-spacing:-.02em;margin:2px 0 18px;font-size:32px;font-weight:750;line-height:1.1}.section-title{letter-spacing:-.01em;justify-content:space-between;align-items:baseline;gap:8px;margin:26px 0 10px;font-size:20px;font-weight:700;display:flex}.section-title .link{color:var(--accent);font-size:15px;font-weight:600}.muted{color:var(--text-2)}.small{font-size:14px}.tiny{font-size:12px}.stack{flex-direction:column;gap:10px;display:flex}.row{align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.grow{flex:1;min-width:0}.wrap{flex-wrap:wrap}.center{text-align:center}.topbar{justify-content:space-between;align-items:center;min-height:44px;display:flex}.icon-btn{background:var(--surface-2);width:40px;height:40px;color:var(--text);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.icon-btn:active{transform:scale(.94)}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card.flat{box-shadow:none;border:1px solid var(--line)}.card.tap{text-align:left;width:100%;transition:transform .12s;display:block}.card.tap:active{transform:scale(.985)}.card.accent{background:var(--accent-soft);box-shadow:none}.card.blue{background:var(--blue-soft);box-shadow:none}.card-title{font-size:17px;font-weight:650;line-height:1.3}.card-sub{color:var(--text-2);margin-top:2px;font-size:14px}.kicker{letter-spacing:.04em;text-transform:uppercase;color:var(--text-2);font-size:12px;font-weight:700}.kicker.accent{color:var(--accent)}.btn{background:var(--accent);min-height:52px;color:var(--accent-ink);border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-size:17px;font-weight:650;transition:transform .12s,opacity .12s;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4}.btn.block{width:100%}.btn.secondary{background:var(--surface-2);color:var(--text)}.btn.ghost{color:var(--accent);background:0 0;min-height:44px;padding:0 12px}.btn.small{border-radius:11px;min-height:38px;padding:0 14px;font-size:15px}.tabbar{z-index:20;height:calc(var(--tabbar-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:saturate(1.6)blur(18px);border-top:1px solid var(--line);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tab{color:var(--text-3);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:600;display:flex}.tab.on{color:var(--accent)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--surface);border:1.5px solid var(--line);border-radius:999px;align-items:center;gap:6px;min-height:40px;padding:0 14px;font-size:15px;font-weight:550;display:inline-flex}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.chip.static{background:var(--surface-2);border:0;min-height:28px;padding:0 10px;font-size:13px}.seg{background:var(--surface-2);border-radius:12px;grid-auto-columns:1fr;grid-auto-flow:column;padding:3px;display:grid}.seg button{min-height:36px;color:var(--text-2);border-radius:9px;font-size:15px;font-weight:600}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.days{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.day{background:var(--surface);border:1.5px solid #0000;border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:8px 0;display:flex}.day .d{color:var(--text-2);font-size:12px;font-weight:600}.day .n{font-size:17px;font-weight:700}.day.on{background:var(--accent);color:var(--accent-ink)}.day.on .d{color:inherit;opacity:.85}.day.today:not(.on){border-color:var(--accent)}.day .dot{opacity:.5;background:currentColor;border-radius:50%;width:5px;height:5px}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--text-2);font-size:14px;font-weight:600}.input{background:var(--surface);border:1.5px solid var(--line);border-radius:12px;outline:none;width:100%;min-height:50px;padding:12px 14px;font-size:17px}.input:focus{border-color:var(--accent)}textarea.input{resize:vertical;min-height:110px}.input-unit{position:relative}.input-unit .u{color:var(--text-3);pointer-events:none;font-weight:600;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.input-unit .input{padding-right:52px}.list{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.list-row{text-align:left;align-items:center;gap:12px;width:100%;min-height:52px;padding:13px 16px;display:flex}.list-row+.list-row{border-top:1px solid var(--line)}.list-row .chev{color:var(--text-3)}.kpis{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.kpis.three{grid-template-columns:repeat(3,1fr)}.kpi{background:var(--surface);box-shadow:var(--shadow);border-radius:16px;padding:12px 14px}.kpi .l{color:var(--text-2);font-size:13px;font-weight:550}.kpi .v{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.kpi .v small{color:var(--text-2);margin-left:2px;font-size:14px;font-weight:600}.kpi .d{font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.delta-good{color:var(--blue)}.delta-bad{color:var(--amber)}.macro-bar{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.macro{background:var(--surface-2);text-align:center;border-radius:12px;padding:8px 6px}.macro .v{font-variant-numeric:tabular-nums;font-weight:700}.macro .l{color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.overlay{z-index:40;background:var(--bg);animation:.28s cubic-bezier(.2,.8,.2,1) slideUp;position:fixed;inset:0;overflow-y:auto}.sheet-backdrop{z-index:50;background:#00000059;animation:.2s fade;position:fixed;inset:0}.sheet{z-index:51;background:var(--bg);max-height:92dvh;padding:8px 16px calc(var(--safe-bottom) + 24px);border-radius:22px 22px 0 0;max-width:640px;margin:0 auto;animation:.3s cubic-bezier(.2,.8,.2,1) slideUp;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.sheet .grabber{background:var(--surface-3);border-radius:3px;width:38px;height:5px;margin:4px auto 10px}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}}.flow{min-height:100%;padding:calc(var(--safe-top) + 8px) 16px calc(var(--safe-bottom) + 16px);flex-direction:column;max-width:560px;margin:0 auto;display:flex}.flow-top{align-items:center;gap:12px;min-height:44px;display:flex}.progress{background:var(--surface-3);border-radius:3px;flex:1;height:6px;overflow:hidden}.progress>i{background:var(--accent);border-radius:3px;height:100%;transition:width .3s;display:block}.flow-body{flex:1;padding-top:22px;animation:.25s qIn}@keyframes qIn{0%{opacity:0;transform:translate(14px)}}.flow-section{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;font-size:13px;font-weight:700}.flow-q{letter-spacing:-.015em;margin:6px 0 8px;font-size:26px;font-weight:720;line-height:1.18}.flow-help{color:var(--text-2);margin-bottom:20px}.flow-foot{gap:10px;padding-top:16px;display:flex}.opts{flex-direction:column;gap:10px;display:flex}.opt{text-align:left;background:var(--surface);width:100%;min-height:60px;box-shadow:var(--shadow);border:2px solid #0000;border-radius:16px;align-items:center;gap:12px;padding:12px 16px;transition:transform .1s;display:flex}.opt:active{transform:scale(.985)}.opt.on{border-color:var(--accent);background:var(--accent-soft)}.opt .t{font-size:17px;font-weight:620}.opt .h{color:var(--text-2);margin-top:1px;font-size:14px}.opt .tick{border:2px solid var(--surface-3);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-left:auto;display:flex}.opt.on .tick{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.scale{gap:6px;display:grid}.scale button{background:var(--surface);min-height:56px;box-shadow:var(--shadow);font-variant-numeric:tabular-nums;border-radius:14px;font-size:18px;font-weight:700}.scale button.on{background:var(--accent);color:var(--accent-ink)}.scale-labels{color:var(--text-2);justify-content:space-between;gap:12px;margin-top:8px;font-size:13px;display:flex}.big-number{justify-content:center;align-items:center;gap:14px;margin:18px 0;display:flex}.big-number input{text-align:center;font-variant-numeric:tabular-nums;letter-spacing:-.02em;background:0 0;border:0;outline:none;width:150px;font-size:46px;font-weight:750}.big-number .u{color:var(--text-2);font-size:20px;font-weight:650}.round-btn{background:var(--surface);width:56px;height:56px;box-shadow:var(--shadow);border-radius:50%;justify-content:center;align-items:center;font-size:26px;font-weight:600;display:inline-flex}.round-btn:active{transform:scale(.92)}.round-btn.sm{flex:none;width:36px;height:36px;font-size:18px}.ex-img{aspect-ratio:4/3;background:#fff;border-radius:14px;position:relative;overflow:hidden}.ex-img img{object-fit:contain;width:100%;height:100%;display:block}.ex-img .badge{color:#fff;background:#0000008c;border-radius:8px;padding:3px 7px;font-size:12px;font-weight:600;position:absolute;bottom:8px;left:8px}.ex-thumb{aspect-ratio:4/3;border-radius:10px;flex-shrink:0;width:84px}.set-grid{grid-template-columns:34px 1fr 1fr 48px;align-items:center;gap:8px;display:grid}.set-grid .h{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:700}.set-grid .idx{color:var(--text-2);text-align:center;font-weight:700}.set-grid .input{text-align:center;font-variant-numeric:tabular-nums;min-height:44px;padding:8px 10px}.check{background:var(--surface-2);width:44px;height:44px;color:var(--text-3);border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.check.on{background:var(--accent);color:var(--accent-ink)}.timer{left:16px;right:16px;bottom:calc(var(--safe-bottom) + 16px);z-index:45;background:var(--text);max-width:608px;color:var(--bg);border-radius:18px;align-items:center;gap:12px;margin:0 auto;padding:12px 14px 12px 18px;display:flex;position:fixed;box-shadow:0 8px 30px #00000040}.timer .t{font-variant-numeric:tabular-nums;font-size:28px;font-weight:750}.timer button{color:inherit;background:#7f7f7f40;border-radius:10px;min-height:38px;padding:0 12px;font-weight:650}.empty{text-align:center;color:var(--text-2);padding:28px 16px}.empty .icon{background:var(--surface-2);width:56px;height:56px;color:var(--text-2);border-radius:18px;justify-content:center;align-items:center;margin:0 auto 12px;display:flex}.divider{background:var(--line);height:1px;margin:14px 0}.toast{z-index:60;left:50%;bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 16px);background:var(--text);color:var(--bg);border-radius:14px;padding:11px 18px;font-size:15px;font-weight:600;animation:.2s fade;position:fixed;transform:translate(-50%);box-shadow:0 8px 30px #0003}.prose p{margin:0 0 10px}.prose ul{margin:0 0 10px;padding-left:20px}.prose li{margin:3px 0}.ingredients .r{border-bottom:1px solid var(--line);grid-template-columns:1fr auto auto;align-items:baseline;gap:12px;padding:10px 0;display:grid}.ingredients .r:last-child{border-bottom:0}.ingredients .q{color:var(--text-2);font-variant-numeric:tabular-nums;text-align:right;font-size:15px}.ingredients .me{color:var(--accent);font-variant-numeric:tabular-nums;text-align:right;min-width:64px;font-weight:700}.steps{counter-reset:s;margin:0;padding:0;list-style:none}.steps li{counter-increment:s;padding:0 0 14px 40px;position:relative}.steps li:before{content:counter(s);background:var(--surface-2);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;font-weight:700;display:flex;position:absolute;top:-2px;left:0}.shop-item{text-align:left;align-items:center;gap:12px;width:100%;padding:12px 16px;display:flex}.shop-item+.shop-item{border-top:1px solid var(--line)}.shop-item .box{border:2px solid var(--surface-3);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.shop-item.done .box{background:var(--text-3);border-color:var(--text-3);color:var(--bg)}.shop-item.done .name{color:var(--text-3);text-decoration:line-through}.pin-dots{justify-content:center;gap:16px;margin:18px 0 4px;display:flex}.pin-dots span{border:2px solid var(--text-3);border-radius:50%;width:15px;height:15px;transition:background .1s}.pin-dots span.on{background:var(--text);border-color:var(--text)}.pin-dots.shake{animation:.35s shake}@keyframes shake{20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.pin-pad{grid-template-columns:repeat(3,76px);justify-content:center;gap:16px 26px;margin-top:8px;display:grid}.pin-pad button{background:var(--surface-2);font-variant-numeric:tabular-nums;border-radius:50%;justify-content:center;align-items:center;width:76px;height:76px;font-size:30px;font-weight:500;display:flex}.pin-pad button:last-child{background:0 0}.pin-pad button:active{background:var(--surface-3)}.pin-pad button:disabled{opacity:.4}.viewer-bar{z-index:30;padding:calc(var(--safe-top) + 8px) 16px 8px;background:var(--blue-soft);color:var(--blue);justify-content:space-between;align-items:center;gap:10px;font-size:13px;font-weight:650;display:flex;position:sticky;top:0}.viewer-bar span{align-items:center;gap:6px;display:inline-flex}.viewer-bar button{color:inherit;padding:4px 8px;font-weight:700}.viewer-bar+.screen{padding-top:12px}.chip.static.top-chip{background:var(--accent-soft);color:var(--accent);font-weight:650}.chip.food-top{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.chip.food-black{background:var(--surface-2);border-color:var(--surface-3);color:var(--text-3);text-decoration:line-through}.option-row{align-items:center}.option-row .check{flex-shrink:0}.install-hint{align-items:flex-start;gap:12px;display:flex}.install-hint .share{vertical-align:-3px;display:inline-flex}.login{min-height:100%;padding:32px 24px calc(var(--safe-bottom) + 32px);flex-direction:column;justify-content:center;gap:14px;max-width:420px;margin:0 auto;display:flex}.logo{background:var(--accent);width:72px;height:72px;color:var(--accent-ink);border-radius:20px;justify-content:center;align-items:center;margin-bottom:8px;display:flex}.error{color:var(--danger);font-size:14px;font-weight:600}.chart{touch-action:pan-y;width:100%;height:auto;display:block}.spin{border:3px solid var(--surface-3);border-top-color:var(--accent);border-radius:50%;width:22px;height:22px;margin:40px auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
